Database ERD到关系模式:如何转换这种自引用的m-to-m关系? 提出的问题

Database ERD到关系模式:如何转换这种自引用的m-to-m关系? 提出的问题,database,database-design,entity-relationship,erd,Database,Database Design,Entity Relationship,Erd,一个位置可以有多个类别标签。类别具有层次结构,并且有多个子类别,例如类别是教育,子类别是大学、高中、学前教育等 鉴于此ERD: 如何正确地将其转换为关系模式 我的解决方案 位置(位置id,地址,名称,描述,x坐标,y坐标) 由于位置和类别之间存在多对多关系: 地点类别(地点id,类别名称) 类别具有自引用多对多关系 类别(类别名称) 子类别(子类别名称,类别名称) 我认为我上面的解决方案是错误的。我的关系模式的问题是LocationCategory只能存储类别名称,而不能存储子

一个位置可以有多个类别标签。类别具有层次结构,并且有多个子类别,例如类别是教育,子类别是大学、高中、学前教育等

鉴于此ERD:

如何正确地将其转换为关系模式

我的解决方案
  • 位置(位置id,地址,名称,描述,x坐标,y坐标)
由于位置和类别之间存在多对多关系:

  • 地点类别(地点id类别名称
类别具有自引用多对多关系

  • 类别(类别名称

  • 子类别(子类别名称类别名称

我认为我上面的解决方案是错误的。我的关系模式的问题是LocationCategory只能存储类别名称,而不能存储子类别名称。对于类别_名称本身,在子类别中,如果该类别有多个子类别,则无法捕获子类别_名称

我认为我在分类中自我引用多对多关系时犯了一个错误。并且该类别实体没有任何其他属性。有没有特别的方法来解决这个问题?i、 e.创建关系模式,以便位置能够链接到类别和子类别?还是我对图表的解释有误?

“我的关系模式的问题是LocationCategory只能存储类别名称,而不能存储子类别名称。”

然后简单地存储它,f。E像这样:


注意:无需将
cat\u id
存储在
locationCategory
表中,因为
subcat\u id
确定
cat\u id
,但为了更方便地查询,它可以提供帮助。

图中的行表示Contain将PK保存为2个类别,名称下的下划线表示它是类别PK。类别是实体类型,而不是关系类型。没有实体或关系子类别。为什么你有它却没有它?(修辞)你没有说什么是问题,所以如果“范畴实体没有任何其他属性”呢?“解决”什么?在教科书中找到并遵循如何将ERD映射到DDL。在你第一次不确定或卡住的地方问一个问题&参考你的课本。请不要要求我们重写它。我们还可以期待所有步骤都是常见问题。@SandraGuilepZouaouiZandeh当图像中的文本应该是内联的时,请不要内联编辑图像,特别是当文本可能使图像冗余时。它奖励坏问题。请告诉此人使用文本,给他们那个FAQ链接。请。从其他文本中转述或引用。给出你所需要的&把它和你的问题联系起来。仅将图像用于不能表示为文本或扩充文本的内容。包括带有图像的图例/图例和说明。