如何正确命名关联 table(一对一关系)

How to properly Name an association table (One to one relationship)

大多数时候我遇到很多对很多(交叉引用)table,名字像Table1Table2XRef

但是命名一对一关联的最佳方式是什么table?

我知道我可以在一个或另一个中迁移外键 table,但我更关心根据良好实践命名它们的正确方法。

提前致谢。

如此处所示:

link

数据库中的一对一关系,可以是单向的,双向的,也可以是自引用。

单向:

只有一个键迁移到另一个键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 );
);