我有兴趣了解两种数据库设计模式的标准名称,或者如果您是纯粹主义者,则可能是“问题”:
您如何称呼这些情况/非规范化?我正在为自己使用“镜像属性”和“轻弹外键”,但我相信没有人会理解我:)。无论如何,情况很简单:
1)我们在“父子”关系中有两个实体,在子实体中不仅有外键属性,还有父实体的一些其他“备份”属性。在这种情况下,您不仅在地址实体中有 streetId,而且还有 streetName 来支持街道列表中不存在街道的情况(或者更常见的是遗留数据)。
2)子实体包含由两个字段组成的“外键”:一个标识“父表”,另一个是“父表中的键值”。这意味着首先解释,过滤它,我们知道应该加入哪个表。当然,这种关系的一致性并没有在 dbms 级别上保持,但这仍然是我在实践中有时会看到的那种“父子关系”。