0

我有兴趣了解两种数据库设计模式的标准名称,或者如果您是纯粹主义者,则可能是“问题”:

您如何称呼这些情况/非规范化?我正在为自己使用“镜像属性”和“轻弹外键”,但我相信没有人会理解我:)。无论如何,情况很简单:

1)我们在“父子”关系中有两个实体,在子实体中不仅有外键属性,还有父实体的一些其他“备份”属性。在这种情况下,您不仅在地址实体中有 streetId,而且还有 streetName 来支持街道列表中不存在街道的情况(或者更常见的是遗留数据)。

2)子实体包含由两个字段组成的“外键”:一个标识“父表”,另一个是“父表中的键值”。这意味着首先解释,过滤它,我们知道应该加入哪个表。当然,这种关系的一致性并没有在 dbms 级别上保持,但这仍然是我在实践中有时会看到的那种“父子关系”。

4

1 回答 1

1

1)在规范化的数据库中,列应该依赖于键、整个键,并且只依赖于键。(所以帮帮我 Codd。)您当然可以对某些列进行非规范化以提高效率,但是您的数据库中有重复的数据。这种重复的数据可能会不同步。

2)如果我理解你所说的正确,你的“外键”的第一列标识哪个表,而第二列是定义该表中行的实际键。我也见过这个。对于域类型表(保险组费率 1、保险组费率 2 等)可能没问题,但在与数据表一起使用时表示一种多重继承。在没有看到具体实例的情况下,我一般会说多重继承可以用一个基表和一个或多个扩展基表的附加表来重新定义。

于 2011-04-14T17:55:21.200 回答