国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php - 關(guān)于商品無限極分類Mysql表設(shè)計(jì)
黃舟
黃舟 2017-05-16 12:02:51
0
6
787

目前有三張表, 1: goods 商品主表 id name price

          2: goods_type 商品類型表  tid name 
          3:  goods_type_map  商品和商品類型關(guān)系表  id gid gtid

之前的表結(jié)構(gòu)如上,現(xiàn)由于商品對(duì)應(yīng)類型可以為一對(duì)多,一件商品可以對(duì)應(yīng)多個(gè)類型,我每次更新商品所屬類型時(shí)需要現(xiàn)將關(guān)系表已存在的內(nèi)容刪除再插入新的類型關(guān)系。

goods 表:

    id  name  price  goods_type
    1   洗面奶    22    1,8
    2   面膜      33    11

goods_type表

    tid name 
    1    化妝品
    8    護(hù)膚品
    11   保健品

故想更改為: 在商品主表中增加 goods_type 字段,來取代goods_type_map表,多個(gè)類型使用逗號(hào)隔開.

但目前出現(xiàn)問題,當(dāng)查詢某個(gè)類型的商品時(shí),使用Like查詢會(huì)經(jīng)常查詢錯(cuò)誤。 所以想問下這種情況應(yīng)該怎么處理

黃舟
黃舟

人生最曼妙的風(fēng)景,竟是內(nèi)心的淡定與從容!

Antworte allen(6)
大家講道理

用like并不是一個(gè)好的選擇,推薦一個(gè)Mysql函數(shù)find_in_set應(yīng)該能解決樓主需求。官方文檔:https://dev.mysql.com/doc/ref...

洪濤

也可以考慮用存儲(chǔ)過程遞歸實(shí)現(xiàn),不過不推薦這么做,無限級(jí)分類本身就不是一種良好的用戶體驗(yàn)設(shè)計(jì),更何況會(huì)增大服務(wù)器和數(shù)據(jù)庫壓力。

曾經(jīng)蠟筆沒有小新

先用like查出部分?jǐn)?shù)據(jù),再循環(huán)in_array()過濾,要不就改表結(jié)構(gòu)吧

伊謝爾倫

你這個(gè)已經(jīng)明顯是個(gè)多對(duì)多的關(guān)系了。
所以我感覺,你還是保留三張表比較好。
這樣比較符合范式。

淡淡煙草味

符合范式應(yīng)該更加合理,如果你硬要按原來想法的話,在每個(gè)分類Id前后加上分隔符,用like匹配時(shí)加上分隔符就可以了

PHPzhong

你在使用like的時(shí)候 比如有這樣一個(gè)值 1,2,11 like 1 會(huì)like到 1和11
這種情況請(qǐng)使用find_in_set

如果你非要使用like,字段值 可以這樣 ,1,2,11, 你like的時(shí)候 like ,1, 也可以達(dá)到目的

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage