Database design 什么是「;标准名称“;对于非规范化模式?

Database design 什么是「;标准名称“;对于非规范化模式?,database-design,denormalization,Database Design,Denormalization,我想知道两种数据库设计模式的标准名称,如果您是纯粹主义者,可能会有“问题”: 您如何称呼这些情况/非规范化? 我自己使用“镜像属性”和“flicked外键”,但我相信没有人会理解我:)。无论如何,情况很简单: 1) 我们在“父子”关系中有两个实体,在子实体中不仅有外键属性,还有父实体的一些其他“备份”属性。在这种情况下,您不仅在地址实体中有streetId,而且还有streetName,以支持街道在街道列表中不存在的情况(或者对于传统数据更常见的情况) 2) 子实体包含由两个字段组成的“外键”:

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

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

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

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

1)在规范化数据库中,列应该依赖于键、整个键,除了键之外什么都不依赖。(所以请帮助我Codd。)为了提高效率,您当然可以对某些列进行非规范化,但这样您的数据库中就有了重复的数据。此重复数据可能会失去同步

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

这样的设计决策是否存在常见的“名称”?首先可以命名为“重复数据”,但这个“名称”没有显示“背后的原因”(提供无法使用父表的实体属性提供的“特殊”属性,因为找不到此实体)。但是第二,“多重继承FK”在google中工作得很好:)尊敬并感谢您。