该表的规范化 ERD实体关系图是什么样的

问题描述

我被我的一个项目困住了。我的桌子看起来有点像这样,但我想我只是在兜圈子,疯了。

enter image description here

问题在于如何“分离”类别下的属性。我需要为每个类别创建实体吗?那么,我们将如何声明键以及哪个表将采用外键? 或者,对此进行规范化没有意义?

我也在考虑以某种方式枚举属性以将类别变成属性??这难道是一回事吗...

感谢任何建议!

解决方法

我认为只有一种方法可以规范化此表。每一行都是一个实体。

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 是拼写错误还是故意的。无论哪种方式,它都是建模的。