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

ERD to relation schema: How to convert this self-referencing m-to-m relationship?

给出的问题

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

鉴于此 ERD:

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

我的解决方案

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

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

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

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

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

那就干脆存起来吧,f。 e.像这样:

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