gpt4 book ai didi

mysql - 建模多对多一元关系和 1 :M unary relationship

转载 作者:行者123 更新时间:2023-11-29 06:05:46 25 4
gpt4 key购买 nike

我重新开始数据库设计,我意识到我的知识存在巨大差距。

我有一个包含类别的表。每个类别可以有多个子类别,每个子类别可以属于多个 super 类别。

我想创建一个具有类别名称的文件夹,其中将包含所有子类别文件夹。 (视觉对象,如 Windows 文件夹)所以我需要对子类别进行快速搜索。

我想知道在这种情况下使用 1:M 或 M:N 关系有什么好处?以及如何实现每个设计?

我创建了一个 ERD 模型,它是 1:M 一元关系。 (该图还包含一个费用表,其中存储所有费用值,但在本例中不相关)

1:M unary relationship

这个设计正确吗?

多对多一元关系是否允许更快地搜索 super 类别,并且默认情况下是最佳设计吗?

我更喜欢包含 ERD 的答案

最佳答案

如果我理解正确的话,一个子类别最多可以有一个(直接) super 类别,在这种情况下,您不需要单独的表。像这样的东西应该足够了:

enter image description here

显然,您需要一个递归查询来获取所有级别的子类别,但如果您在 PARENT_ID 上放置索引,它应该相当有效。

朝相反方向(并获取所有祖先)也需要递归查询。由于这需要在 PK(自动索引)上进行搜索,因此这也应该相当有效。

有关更多想法和不同的性能权衡,请查看 this slide-show .

关于mysql - 建模多对多一元关系和 1 :M unary relationship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11584657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com