寻找关于应在数据库表之间定义关系的位置的意见和反馈。具体来说,是更喜欢在概念上有意义且需要使用的直接关系,还是更喜欢使用尽可能少的关系。
例如,在此图中:
a_g 关系确实需要存在。 d_g 关系在概念上是有意义的并且会经常使用。我的问题是是否存在这样的关系,或者是否忽略它而不是选择 d->c->b->a->g。
更多的关系有助于提高绩效,但在我看来,这会增加不一致的风险。它增加了 d->g 可能得到与 d->c->b->a->g 不同的 g 的风险。 (显然,这种特殊的设计规定 g 无论哪种方式都是相同的,但我说的是如果出现严重错误 - 那些“到底是怎么发生的”情况。)
同样,在使用 d 时,通常需要在不需要访问 c 和 b 中的数据的情况下访问 a。是否应该建立一种 a_d 关系,或者开始创建这些“节省时间”的关系是否会导致失控?
最佳答案
请考虑增加表组的填充或维护难度,这些表具有太多的引用完整性约束,特别是在存在诸如循环之类的依赖关系的情况下。 您必须在文档中提供表的顺序,填充或维护时必须遵循该顺序。 一个危险的替代方案是暂时关闭部分或全部引用完整性约束,并且不要忘记在维护后再次激活它们。
关于mysql - 数据库设计 - 表关系 - 更喜欢最小关系或 "time saving"关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23963194/