我正在寻找这个名称(如果有的话),因为它涉及到FK引用查找表的不良做法。
我用Google搜索,还检入了一本我拥有的书(SQL Antipatterns),但没有找到任何有关书。
在某些情况下,表(A)具有不可空列,其中FK引用了查询表(B)。
在该查找表中,我们有一个特殊的行,其中ID = -1,DESCRIPTION = Unknown。
这样做是为了代替简单地使(A)中的列为可空,然后适当地处理null。
我想知道此模式是否有名称?
我正在寻找这个名称(如果有的话),因为它涉及到FK引用查找表的不良做法。
我用Google搜索,还检入了一本我拥有的书(SQL Antipatterns),但没有找到任何有关书。
在某些情况下,表(A)具有不可空列,其中FK引用了查询表(B)。
在该查找表中,我们有一个特殊的行,其中ID = -1,DESCRIPTION = Unknown。
这样做是为了代替简单地使(A)中的列为可空,然后适当地处理null。
我想知道此模式是否有名称?
我想知道这个模式是否有名字?
通常将其称为“未知成员”,它绝对不是维度建模的反模式,通常也不是OLAP。参见例如:https://www.kimballgroup.com/2003/02/design-tip-43-dealing-with-nulls-in-the-dimensional-model/
在报告中,从
获得相同的结果很重要FACT LEFT JOIN DIMENSION
as
FACT INNER JOIN DIMENSION
许多报告工作流程都始于用户选择维度成员以过滤事实。因此,您确实需要在每个维度表中保留一行,以免错过某些查询模式中的行。
在OLTP中,我同意使用可为空的外键通常比引入未知成员更好,但是在某些业务领域中,引入看起来像未知成员的东西可能是常见的说法。