将特定的外键字段指定为 SSAS 数据源中两个表之间的链接

Posted

技术标签:

【中文标题】将特定的外键字段指定为 SSAS 数据源中两个表之间的链接【英文标题】:Specify a particular foreign key field as a link between two tables in the SSAS data source 【发布时间】:2013-03-12 21:00:58 【问题描述】:

我对 SQL Server Analysis Services 很陌生,现在尝试构建我的第一个多维数据集(第一个除了 Adventure Works 教程)

问题是当存在多个选项(指向同一个第二个表的多个键)时,如何指定一个表中的特定字段作为到另一个表的链接。

在我的数据源中,我有一个部门表:(省略了不相关的字段)

| department_key (PK) | ...

还有这样的纪律表:

| discipline_key (PK) | title | department_for_key (FK) | department_of_key (FK) | ...

Discipline 表中的两个外键都指向 Department 表,并且这两个约束都在 DB 中指定。但它们的含义却大不相同。

在 SQL Server Data Tools 中构造学科维度时,我想指定哪些外键应用作维度(或整个维度)中特定层次结构的级别之间的链接,但我没有'没有找到明确的方法。

有趣的是,SSDT(或 SSAS)恰好使用我现在想要的列(department_of_key)来关联级别。不过,将来我可能想在单独的维度(或同一维度的新层次结构)中使用第二个键,因此最好知道如何控制该过程。

虽然,我认为这个问题很简单,但到目前为止我还没有找到任何解决方案。我也觉得专门针对 SSAS 的教程中有一些相关的内容,但我在那里找不到任何帮助。

感谢您的回复!

(我也将感谢有关更好的问题标题的任何建议=))

【问题讨论】:

【参考方案1】:

为此,我会避免依赖 SSAS 中的关系定义 - 结果太模糊且难以调试参考您的帖子。

我将构建一个涵盖每个维度的整个范围的 SQL 视图(理想情况下仅适用于 SSAS)。这可以独立测试,并以可预测的结果输入 SSAS。

使用 SQL 视图还具有使您的多维数据集免受架构更改和数据问题(例如空值)的影响。

【讨论】:

哦,这很有道理。我肯定会考虑尝试这个选项 - 特别是考虑到我几乎没有其他选项。)谢谢!

以上是关于将特定的外键字段指定为 SSAS 数据源中两个表之间的链接的主要内容,如果未能解决你的问题,请参考以下文章

如何使用约束限制外键下拉列表?

sql。两个间的外键约束和插入数据问题

使用两个不同的外键连接两个表以获得相同的字段

django 管理列表中的外键显示

Grails 域模型中的继承导致重复的外键

第二百八十节,MySQL数据库-外键链表之一对多