2012-02-04 46 views
0

我有一個數據存儲要求,其中每個項目有幾個字段,每個字段可能包含多個值(字符串)。我需要運行一個搜索查詢,其中將根據一個或多個字段值選擇一個或多個項目。這裏是我需要的結構:存儲其屬性字段有多個值的對象

Name:  (this will be the name of an item) 
Season: (name of the season) 
Taste: (1 taste or several) 
Funktion: (1 or several option) 
Weight: (1 or several) 
Volume: (1 volume or several) 
Tips:  (for comments) 
Flavor combinations: (1 or several) 
Matching flavors: (several) 

請對任何有關MySql的數據庫設計搜索查詢的建議。

回答

0

多值屬性的標準設計是多對多表 - 通常由一個由兩個外鍵組成的複合主鍵 - 每個連接表各一個。

對這些的查詢將涉及這個多對多表。

1

一個簡單的「一個一對多」應該工作:

enter image description here

您可以通過與每個「子」表的加盟項目搜索。


如果要限制的屬性值,你可以做一個「真正的」多到很多:

enter image description here

所以,一個項目不能與味道是相關的尚未在TASTE表中(等其他類型的屬性)。


或者你甚至可以做一個廣義模型,這樣你就不會侷限於任何特定的屬性集:

enter image description here

警告:這是非常靈活的,你現在需要加入只有一張表,但一致性很難執行,並且可能在應用程序級別執行。

相關問題