规范化模式的“标准名称”是什么?

时间:2011-04-14 16:40:14

标签: database-design denormalization

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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