2011-06-22 159 views
0

我需要爲我的產品設置數據庫。我需要在此數據庫中存儲產品名稱,產品獎勵,產品詳細信息和產品功能。一個產品現在有多個功能,我該如何設置這個數據庫?設計產品數據庫

我已經安裝有兩個表

數據庫
  1. Product_detail有ID,p_name,p_detail,p_prize和
  2. Product_功能有ID,P_功能(有一個更羽毛一個數據庫)

它正確嗎?如果正確,那麼我如何才能使產品與其功能之間發生關係?我怎樣才能從數據庫中檢索數據?

如果這是錯誤的,那麼我該如何做到這一點?

+0

http://stackoverflow.com/questions/3241033/designing-database-to-hold - 不同的元數據信息/ 3242426#3242426 –

+1

不是真正的問題 – Predator

回答

1

這是一種常見的關係設計模式,用於解決您描述的多對多關係。您需要鏈接錶鏈接Product_detailProduct_features

我會重命名您的表格,因此您有ProductFeature和鏈接表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的等效內容是什麼)

+0

添加到embo的答案中,請記住,類似命名的產品功能並不總是代表相同的東西,所以它對製作後者產品依賴項通常很有用 - 例如襯衫尺寸不是與褲子尺寸相同,並且xs/s/m/l/xl不一定是1/2/3/4/5。 –