gpt4 book ai didi

database - 为什么在为数据库设计关系时要避免循环?

转载 作者:太空狗 更新时间:2023-10-30 01:37:51 24 4
gpt4 key购买 nike

有人告诉我,在数据模型中使用循环是糟糕的设计。我以前听过几次,但没有太在意。例如,您有实体用户、项目、事件。一个项目由一个用户拥有,所以我们有一个从用户到项目的一对多关系。一个事件可以分配给单个用户,另一个是用户到事件的一对多关系。当然一个项目是由一组事件定义的,另一个是Project到Activity的一对多关系。这样就形成了一个循环。

我问这个人为什么设计不好,但他告诉我他也不知道,他也被告知,猴子学习最好。

我尝试搜索,但我想我没有使用正确的词,但在我看来,这对于尝试设计数据库的人来说应该是基础。

那么,谁能告诉我一些关于 er/db 图中的循环/循环的有用信息,应该避免吗?

最佳答案

this paper 的第 3 章对关系循环有很好的处理。 (archive.org)。

但是,一般来说,循环最常见的问题是冗余信息的一致性。

考虑 parent 有很多 child 的情况(来自论文);每个 child 都在一所学校上学。 parent 与学校之间存在第三种关系(“ parent 有 child 在学校”)。但是:您不想明确地对第三关系建模;它完全可以从其他两个推导出来。如果您确实明确捕获了它,则需要确保循环始终一致。

所以在这种情况下,您需要避免循环。但是:循环并非普遍都是坏的。再次以上面的例子为例,考虑对 parent 是学校校长的情况进行建模。这也会创建一个循环。在这种情况下,尽管它是有效的:不可能从其他两个关系中推导出“ parent 是学校的州长”关系。

所以总而言之:当一种关系完全可以从其他组合中推导出来时,不要对循环建模。但是当它们不可推导时创建循环是可以的。

虽然会推荐这篇论文;它给出了比我在这里能给出的更好的描述。

关于database - 为什么在为数据库设计关系时要避免循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8115748/

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