我需要爲我的產品設置數據庫。我需要在此數據庫中存儲產品名稱,產品獎勵,產品詳細信息和產品功能。一個產品現在有多個功能,我該如何設置這個數據庫?設計產品數據庫
我已經安裝有兩個表
數據庫
- Product_detail有ID,p_name,p_detail,p_prize和
- Product_功能有ID,P_功能(有一個更羽毛一個數據庫)
它正確嗎?如果正確,那麼我如何才能使產品與其功能之間發生關係?我怎樣才能從數據庫中檢索數據?
如果這是錯誤的,那麼我該如何做到這一點?
我需要爲我的產品設置數據庫。我需要在此數據庫中存儲產品名稱,產品獎勵,產品詳細信息和產品功能。一個產品現在有多個功能,我該如何設置這個數據庫?設計產品數據庫
我已經安裝有兩個表
數據庫
- Product_detail有ID,p_name,p_detail,p_prize和
- Product_功能有ID,P_功能(有一個更羽毛一個數據庫)
它正確嗎?如果正確,那麼我如何才能使產品與其功能之間發生關係?我怎樣才能從數據庫中檢索數據?
如果這是錯誤的,那麼我該如何做到這一點?
這是一種常見的關係設計模式,用於解決您描述的多對多關係。您需要鏈接錶鏈接Product_detail
至Product_features
。
我會重命名您的表格,因此您有Product
,Feature
和鏈接表ProductFeature
。
ProductFeature
將包括包含產品ID和FEATUREID(也許每個產品的多個記錄的記錄。
所以檢索產品的所有功能ID爲1
SELECT *
FROM product p
INNER JOIN productfeature pf ON pf.productid = p.id
INNER JOIN feature f ON pf.featureid = f.id
WHERE p.id = 1
您需要添加適當的外鍵,並且您可能會考慮將查詢封裝在視圖中(SQL Server構造,因此不確定MySQL的等效內容是什麼)
添加到embo的答案中,請記住,類似命名的產品功能並不總是代表相同的東西,所以它對製作後者產品依賴項通常很有用 - 例如襯衫尺寸不是與褲子尺寸相同,並且xs/s/m/l/xl不一定是1/2/3/4/5。 –
http://stackoverflow.com/questions/3241033/designing-database-to-hold - 不同的元數據信息/ 3242426#3242426 –
不是真正的問題 – Predator