Mysql商品和图片表_【mysql】数据库设计模式:多个图片怎么和商品关联
比如發(fā)布商品,標題,單價,屬性… 還有一個產(chǎn)品圖片,而產(chǎn)品圖片一般是選擇圖片后就上傳了圖片,這時候產(chǎn)品應(yīng)該入庫啦,這時候還不知道這個商品ID,這樣怎么關(guān)聯(lián)商品?
如果是提交后修改,這時候知道了商品ID。在上傳圖片的時候就能關(guān)聯(lián)商品ID
多圖,不知道怎么做
回答
1.將上傳圖片服務(wù)獨立出來,與具體業(yè)務(wù)無關(guān),只返回圖片的URL
2.上傳完圖片后,將圖片的URL寫入input hidden域,和創(chuàng)建或更新表單一起提交,在此做保存或更新操作
3.數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計參考樓上的
關(guān)于“多個圖片”這一點,我想問兩個問題:
(1)圖片數(shù)量是不是不多?
(2)是否需要一起得到所有圖片的文件名?
注意第二點不是說非得把所有圖片立刻全部顯示出來。(例如網(wǎng)上商城的APP,商品一點開必然只下載顯示第一張圖片,左右劃動時其他圖片要轉(zhuǎn)圈圈等下載。但所有圖片的URL肯定是立刻全都知道的,不可能劃動時先去查詢其他圖片的網(wǎng)址,再去下載圖片內(nèi)容,白白浪費一次http請求)
如果這兩個問題的答案都是“是”,則建議根本不要建立關(guān)聯(lián)表,而是用一個json格式*字段,把所有圖片的文件名做成個數(shù)組塞在一起就行,非常的簡單有效。同時通過數(shù)組格式還可以實現(xiàn)最為簡便可行,無需任何代碼的排序功能。
*:pgsql等有原生json字段的可以用,mysql等無原生json字段的用text等效之。當然也可不用json,例如用|等特殊符號分開也很簡單易行。
圖片上傳后把圖片的地址和ID存入一個表
然后把ID和產(chǎn)品的ID關(guān)聯(lián)起來
表結(jié)構(gòu)大概如下:
商品表
ID | …
關(guān)聯(lián)表
goods_id | image_id
圖片表
id | image_url
或者減少一個表直接在關(guān)聯(lián)表里面存圖片 url。那樣靈活性會差一些。
1、將準備加圖的商品id,商品名稱導出。
2、將圖片命名 商品id.jpg這種格式。
3、圖片上傳之后的存儲到它表,字段為 id,商品id,圖片地址;
其中商品id明顯可以從圖片名字中獲取到。
類似與這種簡單的sql就能關(guān)聯(lián)上咯。
select ... from t_product as A,t_pic as B where A.product_id = B.product_id
你可以參考Bmob后端云的關(guān)聯(lián)查詢和數(shù)組這些特殊字段的設(shè)計,設(shè)計一個伸縮性強的數(shù)據(jù)庫。
總結(jié)
以上是生活随笔為你收集整理的Mysql商品和图片表_【mysql】数据库设计模式:多个图片怎么和商品关联的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql gtid 5.7_MySQL
- 下一篇: python写后台接口请求出错_pyth