Php 将数据插入mysql数据库中两个(或多个)表的顺序
我想将数据插入数据库,但有些表相互依赖,例如: 表1:Php 将数据插入mysql数据库中两个(或多个)表的顺序,php,mysql,sql,insert,Php,Mysql,Sql,Insert,我想将数据插入数据库,但有些表相互依赖,例如: 表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,
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(此时我还没有创建),等等。我如何修复它?如果DB设计稍有改变会更好,所有表中相互引用的FK将很难或复杂地插入数据 所以下面的模式可能会帮助你 表1
表1_id(PK)|一些_其他_列 表2
表2_-id(PK)|表1_-id(FK,表2中唯一) 表3
表3_-id(PK)|表1_-id(FK指表1)|表2_-id(FK指表2)
开始按顺序从表1插入到表3只需插入表1数据,并让表2_id(FK)为空或0 然后插入table3数据,现在您有了Table1\u id和table3\u id,因此您可以插入table2的数据
最后,当行成功添加到表2中时,您可以更新表1,将表2的id从(null或0)更改为实际的表2的id。作为一个简单的开始,首先在没有外键的表中插入数据。你的数据库设计有缺陷。在另一个表中不应该同时存在FK。好的,在更改DB模式设计之后,它看起来相当容易,谢谢您的提示!他问的是如何插入数据,而不是如何创建表!