数据库规范化 - 外键一致性

时间:2017-06-16 17:33:32

标签: database-design database-schema diagram database-normalization database-diagram

我正在开发一个数据库模式,并且围绕着开发模式的一部分。我有外键到某些表,有很多表包含一个中心表的外键。

我正在设计的两个表,我设置了一个“ID类型”查找(用于列出ID所属类型/表的外键),然后是FK ID值。我想知道我是否应该为所有表外键执行此操作,以保持一致。对于这两个表,它们可能需要连接到不同的表,具体取决于记录的内容。认为人们被绑定到流程的不同方面,因此人员记录将被链接回1个表或不同的表,具体取决于他们参与流程的位置。

对于其他表,它们实际上只会链接到该主中心表。我应该直接将一个显式外键保留到该表中,还是将其一致地设置为ID类型/表和基于ID类型表链接的FK ID?

如果这没有意义,请告诉我,我会尝试更好地解释。

谢谢!

1 个答案:

答案 0 :(得分:0)

与同事交谈,并建议我没有根据另一个表标识符列链接到不同表的外键列。显然这可能会很快变得危险,因为如果人们不小心,身份证可能会错误地链接到错误的表格。

建议是让人员表,然后是多人交叉引用表,每个数据区域对应一个人需要链接到的表。每个CR表都有一个非空的外键,并且只记录FK链接到的1个表。还会有一个人类型ID,这样一个人可以在需要存在的CR中有多个类型/滚动。

如果有人不同意,我很乐意尽可能多地接受。