屬性表 attr
商品表 item
關聯表 item_attr
屬性表格欄位cat_id
、title
#商品表表欄位item_id
、title
#商品表表欄位item_attr_id
、item_id
、attr_id
例如屬性有5筆記錄,cat_id
分別是1、2、3、4、5
新增一個商品,選擇了屬性2、5
那麼關聯表應該就是兩筆記錄,現在如果要修改,例如去掉5增加4,這樣一般這麼處理
我現在是先獲取原來的舊attr_id
,一個一個去查找看新attr_id
有沒有,如果沒有就刪除,再循環新attr_id
一個一個找就的attr_id
裡面有沒有,如果有跳過,沒有就加入
有更好的方法沒,一開始我想法是先全部刪除,再吧新的添加,這樣是不是不科學
關聯表應該是庫存表。一個商品+一個屬性,定義一個庫存。你上面說的遍歷之後,比對之後,有變動就修改,沒有就刪除,這個是對的。
你後面說的是科學的,前面講的太複雜,那才不科學。
關聯表中先根據item_id全部刪除,再全部加入
delete from item_attr where item_id = 1;
insert into item_attr (item_id、attr_id) values (1, 1), (1, 2), (1, attr_id) values (1, 1), (1, 2), (1, 22);
這種效率最高
全部刪除,再根據最新的全部添加。邏輯簡單,效率最好