我想知道如果您有一個網站需要不同領域的十幾種不同類型的列表(商店,餐廳,俱樂部,酒店,活動),是否有創造與列的表定義像這樣
例店鋪:有多列與靈活抽象表的單個固定表
shop_id | name | X | Y | city | district | area | metro | station | address | phone | email | website | opening_hours
類似
或者更抽象的方式來這樣:
object_id | name
---------------
1 | Messy Joe's
2 | Bate's Motel
type_id | name
---------------
1 | hotel
2 | restaurant
object_id | type_id
---------------
1 | 2
2 | 1
field_id | name | field_type
---------------
1 | address | text
2 | opening_hours | date
3 | speciality | text
type_id | field_id
---------------
1 | 1
1 | 2
2 | 1
2 | 3
object_id | field_id | value
1 | 1 | 1st street....
1 | 3 | English Cuisine
當然它可以是更抽象的,如果值的是預定義的(例如:菜庫侖d有自己的列表)
如果我採用抽象的方法,它可以非常靈活,但查詢將會更復雜,有很多連接。 但我不知道這是否會影響性能,執行這些'更復雜'的查詢。
我很想知道這兩種方法的優點和缺點。我可以爲自己想象,但我沒有經驗來證實這一點。
謝謝。您可能對** [此問題/答案](http://stackoverflow.com/questions/4304217/database-schema-which-can-support-specialized-properties/4359193#4359193)**感興趣。 – PerformanceDBA 2010-12-24 00:53:02