pgp*_*lla 52 database database-design loops data-modeling entity-relationship-model
有人告诉我,在数据模型中有循环是不好的设计.我曾经多次听过这个,但没注意到.例如,您有实体User,Project,Activity.项目由用户拥有,因此我们拥有从用户到项目的一对多关系.可以将活动分配给单个用户,这是从用户到活动的另一个一对多关系.当然,项目由一组活动定义,这是从项目到活动的另一个一对多关系.因此形成环.
我问这个家伙为什么设计不好但他告诉我他也不知道,他也被告知,猴子学习它是最好的.
我试过搜索,但我想我没有使用正确的单词,但在我看来这对于试图设计数据库的人来说应该是一个基础.
那么,任何人都可以向我指出一些有关er/db图中循环/循环的有用信息吗?
sfi*_*nie 50
在本文的第3章中,关系循环有一个非常好的处理方法.
但是,通常,循环最常见的问题是冗余信息的一致性.
考虑一下父母有很多孩子的案例(来自论文); 每个孩子都上学.父母和学校之间存在第三种关系("父母在学校有孩子").但是:您不希望明确地为第三种关系建模; 它完全可以从其他两个派生出来.如果你明确地捕获了它,你需要确保循环始终是一致的.
所以在这种情况下你想要避免循环.但是:循环不是普遍的坏.再次考虑上面的例子,考虑对父母是学校的州长的情况进行建模.那也会创造一个循环.在这种情况下虽然它是有效的:不可能从其他两个关系中推导出"父母是学校的州长"关系.
总而言之:当一个关系完全可以从其他关系中推导出来时,不要对循环进行建模.但是当它们不可导出时创建循环是可以的.
不过会推荐这篇论文,它给出了比我在这里给出的更好的描述.
心连心.