Php 将数据插入mysql数据库中两个(或多个)表的顺序

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,

我想将数据插入数据库,但有些表相互依赖,例如:

表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(此时我还没有创建),等等。我如何修复它?

如果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模式设计之后,它看起来相当容易,谢谢您的提示!他问的是如何插入数据,而不是如何创建表!