java - 關(guān)聯(lián)表修改一般怎么做
問題描述
屬性表 attr商品表 item關(guān)聯(lián)表 item_attr
屬性表字段cat_id、title
商品表表字段item_id、title
商品表表字段item_attr_id、item_id、attr_id
比如屬性有5條記錄,cat_id分別是1、2、3、4、5添加一個(gè)商品,選擇了屬性2、5
那么關(guān)聯(lián)表應(yīng)該就是兩條記錄,現(xiàn)在如果要修改,比如去掉5增加4,這樣一般這么處理
我現(xiàn)在是先獲取 原來的舊 attr_id,一個(gè)一個(gè)去查找看新 attr_id 有沒有,如果沒有就刪除,再循環(huán)新attr_id一個(gè)一個(gè)查找就的 attr_id里面有沒有,如果有跳過,沒有就添加
有更好的方法沒,一開始我想法是先全部刪除,再吧新的添加,這樣是不是不科學(xué)
問題解答
回答1:關(guān)聯(lián)表應(yīng)該就是庫(kù)存表。一個(gè)商品+一個(gè)屬性,定義一個(gè)庫(kù)存。你上面說的遍歷之后,比對(duì)之后,有變動(dòng)就修改,沒有就刪除,這個(gè)是對(duì)的。
回答2:你后面說的是科學(xué)的,前面講的太復(fù)雜,那才不科學(xué)。關(guān)聯(lián)表中先根據(jù)item_id全部刪除,再全部添加delete from item_attr where item_id = 1;insert into item_attr (item_id、attr_id) values (1, 1), (1, 2), (1, 2);這種效率最高
回答3:全部刪除,再根據(jù)最新的全部添加。邏輯簡(jiǎn)單,效率最好
相關(guān)文章:
1. docker - 各位電腦上有多少個(gè)容器啊?容器一多,自己都搞混了,咋辦呢?2. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?3. docker start -a dockername 老是卡住,什么情況?4. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?5. docker gitlab 如何git clone?6. dockerfile - [docker build image失敗- npm install]7. docker不顯示端口映射呢?8. docker-compose 為何找不到配置文件?9. docker內(nèi)創(chuàng)建jenkins訪問另一個(gè)容器下的服務(wù)器問題10. 最新版本的PhpStudy支持64位的PHP嗎? 為什么我把64位的PHP放入后,后臺(tái)收不到POST
