Sql 我应该有两个相互引用的主键吗?

Sql 我应该有两个相互引用的主键吗?,sql,foreign-keys,primary-key,Sql,Foreign Keys,Primary Key,表1和表2是包含独立信息集的大表。 他们有一对一的关系,需要双方的充分参与。外键语句应该放在哪里?在表1、表2中,还是两者都有?为什么呢?考虑了Id与Id之间的关系。这是一个很好的实现技巧。这样做没有什么特别的错误,但是您应该将外键放在两个表中。这意味着,当您插入新值时,您必须启动一个事务,进行两次插入,然后提交该事务 我强烈建议将这些表合并到一个表中。这将使一切变得更容易。为什么它们不是一张桌子?它们在逻辑上是一张桌子,为什么不在物理上呢?我正在为csv文件中的现有数据创建表格。这是提供给我的

表1和表2是包含独立信息集的大表。
他们有一对一的关系,需要双方的充分参与。外键语句应该放在哪里?在表1、表2中,还是两者都有?为什么呢?

考虑了Id与Id之间的关系。这是一个很好的实现技巧。

这样做没有什么特别的错误,但是您应该将外键放在两个表中。这意味着,当您插入新值时,您必须启动一个事务,进行两次插入,然后提交该事务


我强烈建议将这些表合并到一个表中。这将使一切变得更容易。

为什么它们不是一张桌子?它们在逻辑上是一张桌子,为什么不在物理上呢?我正在为csv文件中的现有数据创建表格。这是提供给我的方式。
CREATE TABLE1 (
   ID INT NOT NULL PRIMARY KEY
   FOREIGN KEY ID REFERENCES TABLE2 (ID)
)

CREATE TABLE2 (
   ID INT NOT NULL,
   OTHER INT NOT NULL
   PRIMARY KEY (ID, OTHER)
   FOREIGN KEY ID REFERENCES TABLE1 (ID)
)