大部分时间我遇到过多对多(交叉参考)表,名称如 Table1Table2XRef 。
但是,命名一对一关联表的最佳方法是什么?
我知道我可以在一个或另一个表中迁移外键,但我更关心的是在良好实践方面命名它们的正确方法。
先谢谢你。
答案 0 :(得分:1)
如下所示:
数据库上的一对一关系,可以是单向,双向,也可以是自引用。
<强>单向:强>
只有一个密钥迁移到另一个表
<强>双向:强>
两个主键都将作为外键迁移。
<强>自参考:强>
有一个外键引用自己的主键。
答案 1 :(得分:1)
提供一对一关联表的最佳名称与提供任何表格的最佳名称完全相同:对您和您的团队最有意义的是什么。
如果您认为1-1交叉引用表需要使用与n-m交叉引用表不同的名称,请进行投票。也许 Table1Table2YRef 会赢(很多人在今天的社会中认为Y是X的一半)。
无论你的船漂浮着什么。只需就合理的事情达成一致,一致地应用它并重新开始工作。
顺便问一下,你有多少这些表。在20多年的时间里,我不记得曾遇到过一个。有更简单的方法来建立1-1关系。关于我能想到哪一个会有用的唯一原因是,如果关系破裂并定期进行改革(有点像很多婚姻)。
附录:典型的1-1实施。在拆分包含很少使用的字段的大表时,将这些字段规范化为单独的表。
MainTable:
PK: 1001, F1, F2, ..., F75
PK: 1002, F1, F2, ..., F75
PK: 1003, F1, F2, ..., F75
结果: MainTable:
PK: 1001, F1, F2, ..., F15
PK: 1002, F1, F2, ..., F15
PK: 1003, F1, F2, ..., F15
子表:
PK: 1001, F16, F17, ..., F15
PK: 1002, F16, F17, ..., F15
PK: 1003, F16, F17, ..., F15
create table SubTable(
ID int not null,
..., -- F16 thru f75
constraint PK_SubTable primary key( ID ),
constraint FK_SubTable_MainTable foreign key( ID )
references Maintable( ID );
);