我的情况是跟踪订单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)
答案 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);
现在,您可以添加,编辑或删除/取消关联帐户和订单