我想将数据插入到我的数据库中,但是有些表彼此依赖,例如:
表1:
table1_id (PK, unique) | some_text | table2_id (FK, unique in table2)
表2:
table2_id (PK, unique) | table1_id (FK, unique in table2) | table3_id (FK, unique in table3)
表3:
table3_id (PK, unique) | table1_id (FK, unique in table1) | some_other_data
让我们说这些表与例如因此,在表1中,我们存储关于商业的信息,在表2中存储关于客户的信息,在表3中存储关于每个商业广告的计划广告的信息。因此,当我想创建一个新商业广告时 - 我需要一次填写所有3个表格。但问题是,例如 - 在创建table1时我需要知道table2_id(我此时尚未创建),等等。我该如何修复它?
答案 0 :(得分:2)
如果DB设计略有改变会更好,所有表格中的FK相互之间的插入数据会很困难或很复杂。
因此,以下架构可以帮助您!
表1 table1_id(PK)| some_other_columns
表2 table2_id(PK)| table1_id(FK,表2中唯一)
表3 table3_id(PK)| table1_id(FK参见表1)| table2_id(FK参考表2)
开始按顺序从table1插入table3
答案 1 :(得分:2)
只需插入table1数据,让table2_id(FK)为空或0。
然后插入table3数据,现在你有tabl1_id& table3_id,所以你可以插入table2的数据。
最后,当行已成功添加到table2时,您可以更新table1以将table2_id从(null或0)更改为real table2_id。