【问题标题】:ERD to relation schema: How to convert this self-referencing m-to-m relationship?ERD 到关系模式:如何转换这种自引用的 m 对 m 关系?
【发布时间】:2021-06-03 08:03:15
【问题描述】:

提出的问题

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

鉴于此 ERD:

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

我的解决方案

  • 位置(location_id、地址、名称、描述、x_coords、y_coords)

由于Location和Category之间的多对多关系:

  • Lo​​cationCategory(location_id, category_name)

类别具有自引用的多对多关系

  • 类别(category_name

  • 子类别(subcategory_name, category_name

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

我认为我对 Category 中的自引用多对多关系犯了一个错误。并且这个 Category 实体没有任何其他属性。有什么特殊的方法可以解决这个问题吗?即创建关系模式以使位置能够链接到类别和子类别?还是我对图表的理解有误?

【问题讨论】:

  • 图表中的线条表示包含将 PK 保存到 2 个类别,并且名称下的下划线表示它是类别 PK。类别是实体类型,而不是关系类型。没有实体或关系子类别。为什么你有它但不包含? (修辞。)你没有说什么是问题,那么如果“类别实体没有任何其他属性”怎么办? “解决”什么?在您的教科书中查找并遵循如何将 ERD 映射到 DDL。问一个你第一次不确定或卡住的问题并参考你的教科书。请不要要求我们重写它。此外,我们可以预期所有步骤都是常见问题解答。
  • @SandraGuilepZouaouiZandeh 当图像中的文本应该是内联时,请不要编辑内联图像,尤其是当该文本会使图像冗余时。 meta.stackoverflow.com/q/285551/3404097 它奖励不好的问题。请告诉此人使用文本,给他们该常见问题解答链接。

标签: database database-design entity-relationship erd


【解决方案1】:

“我的关系模式的问题是 LocationCategory 只能存储 category_name 而不能存储 subcategory_name。”

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

注意:不需要将cat_id 存储在locationCategory 表中,因为subcat_id 决定了cat_id,但为了更方便查询,它会有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-09-06
  • 2011-07-26
  • 1970-01-01
  • 2016-12-13
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多