问题描述
我被我的一个项目困住了。我的桌子看起来有点像这样,但我想我只是在兜圈子,疯了。
问题在于如何“分离”类别下的属性。我需要为每个类别创建实体吗?那么,我们将如何声明键以及哪个表将采用外键? 或者,对此进行规范化没有意义?
我也在考虑以某种方式枚举属性以将类别变成属性??这难道是一回事吗...
感谢任何建议!
解决方法
我认为只有一种方法可以规范化此表。每一行都是一个实体。
Entity
------
Entity ID
Entity Letter
Entity Name
Entity Name Type
其中实体 ID 是主聚类键,并且您在(实体字母、实体名称、实体名称类型)上有一个唯一索引。
然后你有一个属性表来保存一个属性。实体和属性之间存在一对多关系。
Attribute
---------
Attribute ID
Entity ID
Category (1 or 2)
Level (x1 - x4,x1 - x8)
Attribute Value
其中属性 ID 是主聚类键,实体 ID 是指向实体的外键。您有一个关于(实体 ID、类别、级别)的唯一索引来对属性进行排序。
您可以通过创建类别表和/或级别表来进一步细分,但我认为这是一个足够的细分。
我不确定第 2 类中的 x1 是拼写错误还是故意的。无论哪种方式,它都是建模的。