你可能不應該有它自己的表中的每一個屬性,一個可能更好的方法是有一個產品表和一個變種表。通過這種方式,您可以在同一張表中獲得價格,尺寸,顏色和數量等信息,然後加入產品,例如Men's blue adidas glide running shoes
。 你變表將是這個樣子:
| variant_id | product_id | price | colour_id | size_id | quantity_available | in_stock |
| 1 | 1 | 50.00 | 1 | 11 | 20 | 1 |
| 2 | 1 | 55.00 | 2 | 12 | 0 | 1 |
然後,你可以單獨加載每個變體,並且已經更新了quantity_available
每當你做銷售。我還包含一個in_stock
布爾值,因此您可以覆蓋您的網站上是否顯示庫存,而無需調整quantity_available
。 然後您將在purchase
表上有variant_id
,以便您稍後可以加入。另外,我喜歡在自己的桌子上放置尺寸和顏色,以便您可以將分類標準合併到藍色所說的所有內容,或所有XS,S,M,L,XL中。
喜歡的東西:
| colour_id | name | base_colour_id |
| 1 | Royal Blue | 3 |
| 2 | Spanish Blue | 3 |
| 3 | Blue | 3 |
| 4 | Ultramarine | 3 |
| 5 | Green | 5 |
| 6 | Mint Green | 5 |
這種方式,您可以添加更多的獨特的色彩變化和仍然基色或全綵色名報告。在這裏,你會使用:SELECT * FROM variant_colour a JOIN variant_colour b ON b.colour_id = a.base_colour_id
你會得到:
| colour_id | name | base_colour_id | colour_id | name | base_colour_id |
| 1 | Royal Blue | 3 | 3 | Blue | 3 |
| 2 | Spanish Blue | 3 | 3 | Blue | 3 |
| 3 | Blue | 3 | 3 | Blue | 3 |
| 4 | Ultramarine | 3 | 3 | Blue | 3 |
| 5 | Green | 5 | 5 | Green | 5 |
| 6 | Mint Green | 5 | 5 | Green | 5 |
這同樣的想法可以用於大小等,所以你不要有數百個獨特的屬性變異,使您的信息不可能報告的結束。
好主意謝謝,這幫助我,所以我會接受你的答案 – sam