如何根据销售点数据库架构中的属性区分产品

时间:2011-01-15 16:31:23

标签: sql database-design point-of-sale

这是我的困境,我正在为一个相当大的零售商建立一个POS系统,他们有不同的产品,它们具有不同的属性(大小,颜色等等)。

当他们从供应商处收到商品时,他们希望使用自己的UPC条形码进行自己的标签,但他们也希望使用文章中的代码区分不同的尺寸。

假设他们收到了4种尺码S,M,L,XL的品牌A衬衫,那么每种尺码都应该有不同的条形码。

所以我想到了文章的基本代码,然后根据属性连接数字以获得不同的代码?如果没有可用的属性,只需添加0

我将大小和颜色作为属性存储在数据库中作为(实体 - 属性 - 值)。除了必须从属性中连接数字以得出完整的代码之外,它们是更好的方法吗?

感谢您的帮助!

修改------------------------------------------- ------------

我让这个例子更加清晰 所以衬衫的基本代码是:9 123456 然后对于颜色蓝色是:789 然后是尺寸S:012 所以完整的代码是9 123456 789012

另一篇文章没有大小或颜​​色或实际上没有任何属性 基本代码是9 654321 属性部分加上000000

这只是为了简单起见,因为每个属性只能使用一个数字。

另一个问题是当链接到OrderDetails表时我需要引用所有属性以了解客户实际购买了蓝色的尺寸S

3 个答案:

答案 0 :(得分:2)

一种可能的选择是创建一个将条形码存储为密钥的表。然后有一个大小和颜色的属性。

答案 1 :(得分:0)

实际上@jzd你的答案非常接近,但我想将这些属性保留为键值对。

这个想法是使用和属性集,并有一个条形码与每个集相关联。这是一个粗略的架构

AttributeSet Table:
 AttributeSetId
 ProductId
 AttributeSetName
 BarCode


AttributeUse Table:
 AttributeSetId
 AttributeId

AttributeSetInstance Table: 
 AttributeSetId
 AttributeId
 AttributeValueId

答案 2 :(得分:0)

如果您忘记了一分钟的条形码......

您是否有数据库来跟踪此广告资源?

是离散存储在此数据库中的项目吗?

如果是这样,那么只需在项目中添加一个唯一的编号,称为UPC代码 - 我建议您不要尝试制作智能密钥,因为您正在描述