如何正确命名关联 table(一对一关系)
How to properly Name an association table (One to one relationship)
大多数时候我遇到很多对很多(交叉引用)table,名字像Table1Table2XRef。
但是命名一对一关联的最佳方式是什么table?
我知道我可以在一个或另一个中迁移外键 table,但我更关心根据良好实践命名它们的正确方法。
提前致谢。
如此处所示:
数据库中的一对一关系,可以是单向的,双向的,也可以是自引用。
单向:
只有一个键迁移到另一个键table
双向:
两个主键都作为外键迁移。
自参考:
有一个外键引用了它自己的主键。
一对一关联的最佳名称 table 与任何 table 的最佳名称完全相同:任何对您和您的团队最有意义的名称。
如果您觉得 1-1 交叉引用 table 需要与 n-m 交叉引用 table 不同的名称,请投票。也许 Table1Table2YRef 会赢(当今社会许多人认为 Y 是 X 的一半)。
随心所欲。就一些明智的事情达成一致,始终如一地应用它并重新开始工作。
顺便说一句,你有多少这样的 table。在 20 多年里,我不记得曾经遇到过一个。建立一对一关系有更简单的方法。我能想到的唯一有用的原因是,如果关系破裂并定期重建(有点像很多婚姻)。
附录:典型的一对一实现。将包含许多很少使用的字段的大型 table 拆分时,将这些字段规范化为单独的 table.
主表:
PK: 1001, F1, F2, ..., F75
PK: 1002, F1, F2, ..., F75
PK: 1003, F1, F2, ..., F75
结果:
主表:
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 );
);
大多数时候我遇到很多对很多(交叉引用)table,名字像Table1Table2XRef。
但是命名一对一关联的最佳方式是什么table?
我知道我可以在一个或另一个中迁移外键 table,但我更关心根据良好实践命名它们的正确方法。
提前致谢。
如此处所示:
数据库中的一对一关系,可以是单向的,双向的,也可以是自引用。
单向:
只有一个键迁移到另一个键table
双向:
两个主键都作为外键迁移。
自参考:
有一个外键引用了它自己的主键。
一对一关联的最佳名称 table 与任何 table 的最佳名称完全相同:任何对您和您的团队最有意义的名称。
如果您觉得 1-1 交叉引用 table 需要与 n-m 交叉引用 table 不同的名称,请投票。也许 Table1Table2YRef 会赢(当今社会许多人认为 Y 是 X 的一半)。
随心所欲。就一些明智的事情达成一致,始终如一地应用它并重新开始工作。
顺便说一句,你有多少这样的 table。在 20 多年里,我不记得曾经遇到过一个。建立一对一关系有更简单的方法。我能想到的唯一有用的原因是,如果关系破裂并定期重建(有点像很多婚姻)。
附录:典型的一对一实现。将包含许多很少使用的字段的大型 table 拆分时,将这些字段规范化为单独的 table.
主表:
PK: 1001, F1, F2, ..., F75
PK: 1002, F1, F2, ..., F75
PK: 1003, F1, F2, ..., F75
结果: 主表:
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 );
);