我們正在開始一個新項目,我們需要將產品和許多產品屬性存儲在數據庫中。技術堆棧是用於數據訪問的MS SQL 2008和實體框架4.0/LINQ。在SQL Server中存儲(產品)屬性的最佳模式
產品(和產品表)非常簡單(SKU,製造商,價格等)。但是,每個產品都有很多屬性可以存儲(比如工業小部件)。這些範圍可能從顏色到認證(s)到管道尺寸。每個產品可能具有不同的屬性,有些可能具有相同屬性的倍數(例如:認證)。
當前的建議是,我們基本上會有一個名稱/值對錶,並將FK返回到每行中的產品ID。
屬性表的例子可能是這樣的:
ProdID AttributeName AttributeValue
123 Color Blue
123 FittingSize 1.25
123 Certification AS1111
123 Certification EE2212
123 Certification FM.3
456 Pipe 11
678 Color Red
999 Certification AE1111
...
注:屬性名稱可能會來自查找表或枚舉。
所以這裏的主要問題是:這是做這種事情的最佳模式?表演將如何?查詢將基於產品和屬性表的JOIN,並且通常需要許多WHERE來過濾特定屬性 - 最常見的搜索將基於一組已知/期望屬性來查找產品。
如果有人對此類數據有任何建議或更好的模式,請告訴我。
謝謝! -Ed
+1,如果僅僅是因爲鏈接的文件比迄今爲止寫在這個頁面上的任何內容更有用。 – 2010-05-26 12:50:18
這篇文章有所幫助,並給了我們很多想法。謝謝! – EdH 2010-05-27 19:27:04