我如何插入影响多个表的值?

时间:2016-10-18 16:49:44

标签: php mysql sql database

我的架构是:

Tables:
Titles ->         ID |     TitleID    | TitleName | ArtistNameFull | Length
Artists->         ID | ArtistNameRoot
ArtistRelation->  ID | TitleID | ArtistID | Relationship

ArtistNameFull是艺术家名称,包括:" feat,with,including,features,presents等。"

ArtistNameRoot只是没有"壮举的艺术家,包括,特色等等。"

ArtistRelation中它们之间的关系在另一个表中,该表具有索引1-15及其对应的"后缀"实质上。如同,索引3将是"特色"和索引7将是"使用"。

我需要在表格中插入大约1000行数据,这些数据只是(标题,艺术家,长度)的值。

到目前为止的方法: 到目前为止,我的方法是将所有需要的数据放入临时表本身,然后调用sql函数,在Title表和临时表之间选择唯一值,然后插入它们,如果我这样做的话插入到标题表中,但我还需要插入艺术家,这有点棘手,因为除了根艺术家之外我还需要摆脱任何东西。所以我尝试使用php从我的临时表中获取数据,并使用正则表达式来获取根艺术家,这可以获得仅仅获得根艺术家的奇迹,但将所有这些连接在一起并找出如何将两者都插入艺术家关系时可能已经有来自之前插入的艺术家很难绕过我的脑袋。

无论如何,我想如果我以一种非常低效的方式解决这个问题,我只需要有智慧的话语,或者这就是通常的方式,我必须继续前进。

1 个答案:

答案 0 :(得分:1)

PHP在操作字符串方面要比SQL好得多。所以继续这样做。使用临时表也是一种有效的方法。

您需要使用PHP从临时表中提取所有数据。

对于每个结果,解析出艺术家姓名并将其插入艺术家。

每次插入后,您想要获取插入的最后一个ID(PDO和mysqli_都有此方法),然后将该ID和艺术家名称存储在一个数组中,以便以后可以使用该ID。

然后插入标题信息。

每次插入后,获取插入的最后一个ID并使用它和艺术家ID将记录插入到关系表中。

这有帮助吗?