因此,我正在開發一家在線服裝店。正如你所知道的每個產品都有不同的尺寸(只要說我有產品T恤和小號,中號和大號)。如您所知,該產品可能具有多種尺寸,但您只能在數據庫中的產品表中指向一個尺寸。那麼實現它的最好方法是什麼?當產品具有多種尺寸,類別等時,解決方案是什麼?我是否必須爲大小製作幾個bool列,如果大小可用,請將其設置爲true;如果大小不正確,請將其設置爲false?我應該製作一個尺寸表,並通過產品表指向尺寸標識或其他方式?沒有那麼糟糕,因爲尺寸總是一樣的?所以請給我一些關於如何去做這件事的建議。提前致謝。在線商店數據庫中的關係(一種產品有很多尺寸)
回答
設計系統時,不僅要將問題看作「編程」或「數據庫」問題,這一點非常重要。這裏真正重要的是將現實世界的問題翻譯成代碼!
您目前正在設計一家網上商店。你將如何去設計它?簡單 - 通過看現實世界。如果這是實體店,每次收到產品時,都需要注意產品的確切特徵。每個單獨的產品可能都有一個序列號,您必須註冊。所以,你需要一個表格來記錄每個單獨的產品!在這個表格中,你會添加每個的大小和顏色。並且單個產品將具有用於產品數據的FK,其包含條形碼和產品名稱。像這樣的東西,在SQL僞代碼。
CREATE TABLE Product (
barcode varchar(15) PRIMARY KEY, #Assuming a barcode has 15 characters
name varchar(500) not null
);
CREATE TABLE IndividualProduct (
serial int PRIMARY KEY,
size varchar(5) not null,
color varchar(15) not null,
barcode varchar(15) not null,
FOREIGN KEY (barcode) REFERENCES Product(barcode)
);
順便說一句,我認爲有幾個電子商務軟件,你需要完全準備好你需要的一切。我可以建議使用一個嗎? Drupal可能是PHP的最佳選擇!假設這不是爲了學校,使用現成的解決方案將在許多方面更便宜。
編輯:你可能還需要一個查詢,而不是做一個新表。請記住,查詢也會輸出表格!
SELECT distinct color
from IndividualProduct IP
inner join Product P on IP.barcode = P.barcode
where P.name = 'Nike Shoes';
該查詢將輸出特定產品的所有可用顏色,並且您不需要額外的顏色表!您也可以對尺寸進行類似的查詢,如果您想要嚴格,可以將where P.name = 'Nike Shoes'
替換爲where P.barcode = '<barcode>'
。並非所有的東西都需要一張表來進行查詢!
在產品表中,我存儲了各個項目。例如Nike Tempo Shirt或其他。我想知道Nike Tempo Shirt有哪些尺碼和顏色可供選擇。我正在考慮顏色表或尺寸表的唯一原因是他們重複自己。顏色表不是問題,因爲產品大多隻有一種顏色,但尺寸並非如此。所以如果一個產品有3種不同的尺寸,我可以指向一個。我對數據庫很陌生,所以我不確定要走哪條路。這不適用於學校,但我使用Laravel進行學習。 – Codearts
然後你不需要額外的表格。進行查詢以獲取所需內容。我用細節編輯了我的答案! –
從你說的話,我會創建這些實體:
- 產品
- PRODUCT_TYPE
- SIZE_TYPE
- 大小
這將是關係:
product_type 1 ---> m product size_type 1 ---> m product_type size_type 1 ---> m size
方法如下:
product
使用product.product_type_id
product_type
表將定義類型的服裝產品將持有這將與product_type
有關個別產品的記錄;這是因爲不同類型的服裝產品需要不同的尺寸組合;例如褲子大小不同於T恤,領襯衫,小孩等;product_type
將有size_type_id
列鏈接到大小類型size_type
表將定義大小類型;例如kids_shirts
,mens_pants
等size
表將保存實際大小,並將通過size.size_type_id
字段鏈接到size_type
;這將包含行S
,M
,L
,XL
...34x32
,36x30
,38x34
等
零售行業使用的術語叫SKU來定義產品,尤其是它關係到庫存管理。當您創建出售物品時,您可能需要考慮如何跟蹤庫存,這將決定您創建的SKU。鑑於上述關係結構,它應該使您能夠創建列出所有項目的sku
表格。它至少會有這些列:product_id
,size_id
,也可能是其他人,如color
等,以及鏈接到您的系統的庫存部分的一些方法。
- 1. 建立一家只有一種產品的在線商店
- 2. 產品的商店清單數據庫
- 3. Asp.Net店產品屬性(尺寸,數量)
- 4. 數據庫設計:產品尺寸
- 5. 多種類別/產品關係的數據庫模式
- 6. 在具有多種關係的商店中創建新記錄
- 7. 將產品從更多數據庫載入商店,如何?
- 8. Magento產品尺寸的尺寸單位
- 9. 如何爲各種顏色和尺寸的商品構建數據庫?
- 10. Spree商業中是否有任何產品尺寸圖寶石?
- 11. 有很多產品類別的電子商務網站的數據庫設計
- 12. 防止在導入數據時沒有產品的在線商店
- 13. 爲產品頁面顯示多種尺寸的圖像?
- 14. Magento多店 - 展示所有商店的產品
- 15. 超過200家商店與多商店和相同的產品?
- 16. 具有多種語言首選產品的多廠商電子商務系統
- 17. Magento:一種簡單產品下的不同尺寸和顏色?
- 18. 實體關係圖冗餘:商店,產品,訂單,類別
- 19. iOS應用商店上的大尺寸
- 20. ASP.NET網上商店產品
- 21. 如何在Magento中創建多種尺寸和價格的產品?
- 22. 根據商店位置搜索商店產品
- 23. 如何鏈接經銷商的產品表和許多零售店關係? mysql
- 24. 數據庫,店鋪關係
- 25. 數據庫設計採用多很多一對多的關係
- 26. 具有多種價格的ASP.NET核心MVC產品數據庫
- 27. 如何在關係數據庫中有多對多的關係
- 28. 在magento的多個商店中保存產品的問題
- 29. 列出發行商在Play商店的所有產品
- 30. SSAS尺寸關係
我不認爲尺寸或顏色在典型的RDBMS模型中被認爲是「相關的」,就像「屬性」一樣。對於相關的大小,這表明其他記錄也可能與該「大小」表相關。因此,如果「小,中,大」對於T恤來說是獨一無二的,那麼爲這三種尺寸設置一張桌子並不一定是個好主意。 – Anthony
http://2.bp.blogspot.com/-unSSm86LT-k/UNDJPlmVh9I/AAAAAAAAAMA/TKZ7hdQlmHk/s1600/options.png –
取決於您是否需要存儲每種尺寸的數量?在這種情況下,您的產品有代碼,而您的尺寸使用產品代碼和「尺寸」標籤和編號。 – BugFinder