2012-01-17 88 views
0

我正在使用CodeIgniter中的联结表工作我的第一个主要数据库设计,并且我不太清楚如何处理数据插入。使用联结表插入数据

比方说,我有两个表,some_table & another_table,与结表,some_another。现在,如果我想向some_table添加一条记录,是否还要为联结表编写单独的插入查询,还是有更好,更自动化的方式来处理这个问题?

例如,我必须这样做:

INSERT INTO some_table (col1, col2, col3) VALUES (val1, val2, val3)

INSERT INTO some_another (col01, col02) VALUES (val01, val02)

每个记录,或者是有办法或处理也更新结表我的工具吗?

如果还有其他信息我应该提供,请让我知道。谢谢!

+0

您将不得不编写单独的INSERT。但我认为你可能喜欢阅读数据库触发器,这是一个很好的方法 - http://dev.mysql.com/doc/refman/5.0/en/triggers.html。触发器是在INSERT,UPDATE或DELETE查询在与触发器相关的表上运行时自动触发的代码 – Abhay 2012-01-17 02:11:41

回答

0

取决于“联结表”的目的。如果您只想要其他两个表之间的所有记录的连接,请为此使用连接。如果你想要一个“多对多”的相关性,那么真的不是自动的方式来知道哪些应该关联。

但是,如果您想要模拟联接并将所有关系简单地“预加载”到多对多表中(如果您想要以后可以禁用或操作的默认关系,则可以使用),可以使用触发器为了那个原因。

无论如何,您需要为每个表使用单独的查询,因为MySQL无法用单个查询插入到多个表中。