一個10萬條資料的總產品資料表,有10000個商家均可從該資料表中選擇商品放到自己的網路店鋪里。我初步的想法是當某個商家從總產品表里選擇產品時,就將選擇的產品復制一分到商家產品表里。但擔心這樣商家產品表會過于龐大(每個商家從總產品表里復制1000個商品,10000個商家就是1千萬條資料)
想請教:我這個資料結構要如何設計才最優化 謝謝
uj5u.com熱心網友回復:
對總產品資料表編輯視圖,商家選擇產品就是選擇視圖。這樣商家就共用一個資料庫。uj5u.com熱心網友回復:
首先,還是需要一個 商家產品表,不然這個商家有哪些產品這個資訊都不知道如何取值如果是3NF建模的話,產品和商家是多對多關系,這個時候就要單獨弄一個 商家產品表來標記他們的關系
商家產品表: 自增ID,商家ID,產品ID,加入時間
大概這么幾個欄位就OK了,如果需要查詢商家產品資訊 ,需要通過表連接的方式 商家表、產品表、商家產品表來實作
MySQL是行存盤的資料庫,如果列很少的情況下,即便資料量大,實際存盤也不會很大
如果你想沿用你的反范式的設計,減少表連接,可以考慮通過商家id進行hash磁區。
當然,分庫分表也是OK的,不過對應用層的影響會大一些。
uj5u.com熱心網友回復:
我個人建議是不要怕表太大,還是兩個表:一個表是商品庫,只存這1000條資料;另外一個表是商家的商品庫,商家選擇了1000條資料,就復制1000條資料,加索引,加快取,后面表太大再去考慮分庫分表。因為商家可能會修改商品資訊,維護庫存,排序等操作,所以每個商家每個商品資訊都可能不一樣的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/7133.html
標籤:MySQL
上一篇:求大神給個思路。。。
