java - 關(guān)聯(lián)表修改一般怎么做
問(wè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)在是先獲取 原來(lái)的舊 attr_id,一個(gè)一個(gè)去查找看新 attr_id 有沒(méi)有,如果沒(méi)有就刪除,再循環(huán)新attr_id一個(gè)一個(gè)查找就的 attr_id里面有沒(méi)有,如果有跳過(guò),沒(méi)有就添加
有更好的方法沒(méi),一開始我想法是先全部刪除,再吧新的添加,這樣是不是不科學(xué)
問(wèn)題解答
回答1:關(guān)聯(lián)表應(yīng)該就是庫(kù)存表。一個(gè)商品+一個(gè)屬性,定義一個(gè)庫(kù)存。你上面說(shuō)的遍歷之后,比對(duì)之后,有變動(dòng)就修改,沒(méi)有就刪除,這個(gè)是對(duì)的。
回答2:你后面說(shuō)的是科學(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鏡像push報(bào)錯(cuò)2. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””3. html5 - datatables 加載不出來(lái)數(shù)據(jù)。4. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問(wèn)題5. node.js - mongodb查找子對(duì)象的名稱為某個(gè)值的對(duì)象的方法6. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????7. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯(cuò)誤?8. html5和Flash對(duì)抗是什么情況?9. 測(cè)試自動(dòng)化html元素選擇器元素ID或DataAttribute [關(guān)閉]10. 前端 - @media query 使用出現(xiàn)的問(wèn)題?

網(wǎng)公網(wǎng)安備