gpt4 book ai didi

mysql - 关系数据库设计 : How to design relationships with long paths?

转载 作者:行者123 更新时间:2023-11-29 04:02:18 26 4
gpt4 key购买 nike

我目前正在设计一个 MySQL 数据库,我遇到了以下问题,我不确定如何正确解决/设计。

我有实体:(简化)

Providers, Addresses, Letters, Faxes

现在:

Adresses belong to providers, Providers have many Addresses

Letters belong to Addresses, Addresses have many Letters

Faxes belong to Letters, Letter have many Faxes

所以现在我在 PHP 中使用 ORM 和这个数据库模型工作,发现自己处于这样一种情况,即我有一个传真对象实例以及要加载相应提供程序的内容。

现在这将花费我大量的连接或几个查询。

我需要走的路是:

Fax -> Letter -> Address -> Provider

现在我在考虑是否应该在 Faxes 和 Providers 之间建立直接关系,这样可以解决这个问题。但这不会是多余的并且会以双倍的努力为代价吗?如果 Fax 和 Provider 之间的关系发生变化怎么办?然后我会调整两个关系路径。

执行此操作的首选方法是什么?我的例子有点简化。实际上我要走的路要长一些。

最佳答案

好吧,识别关系和“更自然”的键可以降低对 JOINing 的需求。

例如:

enter image description here

因为有Faxes.ProviderId,所以可以直接JOIN FaxesProviders

InnoDB tables are clustered , 如果您朝相反的方向前进(例如“获取给定提供商的所有传真”),您可以获得良好的性能。

缺点是“更胖”的键和对 ORM 的相对不友好。所以,我想这是一个妥协的问题,你是决定哪个选项更好的人。

关于mysql - 关系数据库设计 : How to design relationships with long paths?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11029544/

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