因爲有很多人在尋找Products /Product Properties
數據庫模式。我使用Ruby on Rails和(思考)Sphinx進行分面搜索。產品屬性的數據庫模式
要求:
- 添加新的產品類型和他們的選擇不應該需要改變使用獅身人面像
- 支持面搜索的數據庫架構。
解決我遇到:
(See Bill Karwin's answer)
選項1:單表繼承
不是一種選擇,真的。該表將包含許多列的方式。
選項2:類表繼承
Ruby on Rails的緩存在啓動時的數據庫模式,這意味着每當引入新類型的產品的重新啓動。如果您的產品目錄大小可能會有數百個表格。
方案3:序列LOB
殺敵能夠做面搜索,而不重應用程序邏輯。
方案4:實體 - 屬性 - 值
出於測試目的,EAV工作得很好。然而,它可能很快成爲一個爛攤子,維護地獄爲你添加更多選項(例如,當一個選項,增加價格或交貨時間)。
我應該選擇什麼樣的選擇?還有哪些其他解決方案?有沒有我忽視的銀彈(哈)?
這有點像說我可以將2輛車從這裏運輸到那裏。哦,如果我想進行深海潛水,越野或飛行,我應該可以使用同一輛車,而無需對其進行任何修改。 – 2010-04-16 16:04:52