我一直在嘗試設計一個 MySQL 表來存盤客戶購買的商店物品。我不知道應該采用什么方法來設計一張好的桌子。
我的第一個選擇是:
| ID | bill_id_fk | item1_id | item2_id | item3_id | item4_id |
|---|---|---|---|---|---|
在這種方法中,我將為物品創建 20 列(假設客戶一次最多可以購買 20 件物品)。專案的 ID 將存盤在該item(n)_id特定的列中bill_id_fk。我對這種方法的擔憂是以后很難查詢特定專案,例如特定專案已售出多少次。
我的第二個意見是:
| ID | bill_id_fk | item_id |
|---|---|---|
| 1 | 1 | 23 |
| 2 | 1 | 29 |
| 3 | 2 | 23 |
在這種方法中,我將只創建 3 列,對于每個專案,我將為bill_id_fk特定賬單創建一行。在這種方法中,可以更輕松地查詢特定商品的銷售計數。但我擔心的是,在使用應用程式時會創建成千上萬行,隨著時間的推移,這將如何影回應用程式的性能?
我想了解您對設計此類資料庫的最佳實踐的看法。或者我應該采取任何其他方法嗎?
uj5u.com熱心網友回復:
您不可能選擇第一個選擇,第二個是最適合您的情況的方法。
如果您索引了正確的列,它不會影響您的性能。
當涉及到專案時,可以在您的帳單表中添加一列來保存專案編號,例如:
bills (id - total_price - user_id - item_counts)
bill_items (id - bill_id - item_id - item_price)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/383183.html
