如何定义一个维度,以便在显示所有值时不忽略 FK 中的空值?

Posted

技术标签:

【中文标题】如何定义一个维度,以便在显示所有值时不忽略 FK 中的空值?【英文标题】:How do I define a dimension so that null values in the FK are not ignored when showing all values? 【发布时间】:2015-08-19 09:29:41 【问题描述】:

我使用 Modrian Workbench Schema 对 OLAP 多维数据集进行建模,并使用 Jaspersoft 来呈现它。多维数据集建立在具有 FK 到维度表的事实表之上。 目前,我的事实表具有维度的可空外键,我个人觉得这很有趣(据我所知,使用可空或不可空 FK(https://dba.stackexchange.com/questions/3512/fact-table-foreign-keys-null)只是样式决定。

问题是,在选择所有状态时(状态是我的设计中的维度),我只能获得具有状态的记录,而不是没有状态的记录(其中状态ID为空)。

Mondrian 是否能够获取没有状态 id 信息的行?我该如何定义?

【问题讨论】:

【参考方案1】:

我认为您必须使用不可为空的 FK 和 none / n/a / unknown 等成员如果您希望 ALL 成员引用所有事实。

如果您以后想要编写只考虑具有实际维度值的行的查询,您可以再次排除 none 成员。

【讨论】:

以上是关于如何定义一个维度,以便在显示所有值时不忽略 FK 中的空值?的主要内容,如果未能解决你的问题,请参考以下文章

没有FK时如何找到维度表和事实表之间的关系?

如何查询具有基数的表以显示所有 Pk,同时还显示具有 FK 的表中的匹配元素

在AngularJS中删除输入值时如何再次验证表单

没有指定值时不应该跳过验证吗?

没有指定值时不应该跳过验证吗?

为啥我的 Java 自定义单元格渲染器在选择行/单元格时不显示突出显示?