小编EdH*_*EdH的帖子

在SQL Server中存储(产品)属性的最佳模式

我们正在开始一个新项目,我们需要在数据库中存储产品和许多产品属性.技术堆栈是MS SQL 2008和Entity Framework 4.0/LINQ,用于数据访问.

产品(和产品表)非常简单(SKU,制造商,价格等).但是,每种产品也存在许多属性(想想工业小部件).这些可能从颜色到认证到管道尺寸.每个产品可能具有不同的属性,有些可能具有相同属性的倍数(例如:认证).

目前的建议是我们基本上会有一个名称/值对表,其中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
...
Run Code Online (Sandbox Code Playgroud)

注意:属性名称可能来自查找表或枚举.

所以这里的主要问题是:这是做这样的事情的最佳模式吗?表现如何?查询将基于产品和属性表的JOIN,并且通常需要许多WHERE来过滤特定属性 - 最常见的搜索将是基于一组已知/期望的属性来查找产品.

如果有人对此类数据有任何建议或更好的模式,请告诉我.

谢谢!-ed

sql database sql-server database-design entity-framework

18
推荐指数
3
解决办法
1万
查看次数