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

Sql 如何正确命名关联表(一对一关系),sql,database,associations,one-to-one,Sql,Database,Associations,One To One,大多数时候,我都会遇到多对多(交叉引用)表,名称类似于Table1Table2XRef 但是,命名一对一关联表的最佳方法是什么 我知道我可以在一个或另一个表中迁移外键,但我更关心的是如何根据良好实践正确命名它们 先谢谢你 如图所示: 数据库上的一对一关系可以是单向的、双向的,也可以只是有一个自引用 单向: 只有一个键迁移到另一个表 双向: 两个主键都将作为外键迁移 自我参考: 有一个外键引用它自己的主键。给出一对一关联表的最佳名称与给出任何表的最佳名称完全相同:对您和您的组最有意义的名称 如果

大多数时候,我都会遇到多对多(交叉引用)表,名称类似于Table1Table2XRef

但是,命名一对一关联表的最佳方法是什么

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

先谢谢你

如图所示:

数据库上的一对一关系可以是单向的、双向的,也可以只是有一个自引用

单向:

只有一个键迁移到另一个表

双向:

两个主键都将作为外键迁移

自我参考:


有一个外键引用它自己的主键。

给出一对一关联表的最佳名称与给出任何表的最佳名称完全相同:对您和您的组最有意义的名称

如果您觉得1-1交叉引用表需要与n-m交叉引用表具有不同的名称,请进行表决。也许<强>表1表2yRf <强>将获胜(当今社会中许多人认为Y是半x)。 让你的船漂浮的东西。只要在一些合理的事情上达成一致,始终如一地应用它,然后继续工作

顺便问一下,你们有多少张这样的桌子。在20多年的时间里,我不记得曾经遇到过。有更简单的方法建立1-1关系。我能想到的唯一一个有用的原因是,如果夫妻关系经常破裂和改变(有点像很多婚姻)

附录:典型的1-1实施。当用许多很少使用的字段拆分一个大表时,将这些字段规范化为一个单独的表

主表:

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, 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 );
);

这是一个很好的答案。我之所以这样做是因为我想提高在一个非常大的表上检索数据的性能,我决定在这里进行拆分,并将主要用于
SELECT
的列分开。您可能希望查看覆盖索引,以便实际上在一个更大的表中创建一个子表。这对大桌子很有帮助。如果仍然决定将它们拆分,则在第二个表中,将主表的ID值存储为该表的ID,并将其定义为主表的PK和FK。这将建立并实施1-1关系,而不需要单独的表。为了使用格式化功能,我将在答案中添加一个示例。干杯,您的帮助很有价值。我猜你指的是抽象和专门的表格。我明白了。谢谢