mysql - 更新,插入或删除行值列表

时间:2014-08-23 11:06:08

标签: php mysql sql

我的情况是跟踪订单ID。我有一个单独的表格,通过account_id链接到主帐户。

在我的帐户管理中,我允许添加,编辑和删除订单ID。例如,在我的表单中,我会将订单ID显示为order1,order2,order3,order4。虽然这在逗号sep字符串中显示它们,但每个表在accounts_orders表中都有自己的行。

在编辑和更新数据库时,应该使用什么逻辑?我能想到的只是我的新列表与数据库中的当前列表之间的比较。

如果在新列表中,但不在当前...添加它。如果不在新列表中,但在当前...删除它。

有没有更简单的方法可以解决这个问题?我不想删除所有记录并插入新记录......因为这会增加我的主键远远超过必要。

我不是在寻找代码解决方案,而是更多的逻辑,因为似乎必须有一种更简单的方法来更新/插入/删除新的值列表,使其与数据库中的值相等。 / p>

accounts_orders
---------------  
order_id (primary auto inc)
account_id (foreign key)
order_ref (unique)

1 个答案:

答案 0 :(得分:0)

考虑以下内容......

CREATE TABLE account_orders
(account_id INT NOT NULL,order_id INT NOT NULL,PRIMARY KEY(account_id,order_id));

INSERT INTO account_orders VALUES
(1,101),(1,102),(1,103);

现在,您可以添加,编辑或删除/取消关联帐户和订单