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