数据库模式混淆类别属性

时间:2012-09-28 06:33:38

标签: mysql sql-server database database-design

这些是我的要求:

  1. 每个类别都有多个组
  2. 每个组都有多个属性
  3. 每个属性都有多个值
  4. 到目前为止,我已经提出了这个数据库设计

    CategoryGroups表

    GroupID | CatID[References Category(CatID)] | GroupName

    CategoryAttributes表

    AttributeID | AttributeName | GroupID[References CategoryGroups(GroupID)] | AttributeValue

    那么你们认为这是一个整洁的设计吗?有什么建议??

2 个答案:

答案 0 :(得分:1)

除了命名你的第二个表GroupAttributes,因为它对类别一无所知,这是一个最常用的好方法。您有多个1:N(一对多)关系,并且您正在以正确的方式引用表。

答案 1 :(得分:0)

有没有理由不为您的四个概念设置四个表?:

Category: id, <category stuff>
Group: id, category_id, <group stuff>
Attribute: id, group_id, <attribute stuff>
Value: id, attribute_id, <value stuff>

主键是id列。

外键是命名的(即attribute_id是Attribute.id的外键)