数据库设计 - 表关系 - 更喜欢最小关系或“节省时间”关系

时间:2014-05-30 20:46:37

标签: mysql database table-relationships

寻找关于应在数据库表之间定义关系的意见和反馈。具体而言,是否更喜欢在概念上有意义且需要使用的直接关系,或者更喜欢使用尽可能少的关系。

例如,在此图中:

enter image description here a_g关系确实需要存在。 d_g关系在概念上是有意义的并且将经常使用。我的问题是,是否有这样的关系,或者是否优先考虑d-> c-> b-> a-> g。

更多关系有助于提升绩效,但在我看来,这会增加不一致的风险。它增加了d-> g可能达到与d-> c-> b-> a-> g不同的g的风险。 (显然,这个特殊的设计要求g在任何一种方式都是相同的,但我在谈论的是,如果出现了可怕的错误 - 那些"这是怎么回事?"情况。)

同样,在使用d时,通常需要在不需要访问c和b中的数据的情况下访问。应该是a_d关系,还是开始创造那些节省时间的"关系是失控的一种方式吗?

1 个答案:

答案 0 :(得分:0)

请考虑增加人口的难度或表组的维护,这些表具有太多的引用完整性约束,特别是如果存在诸如循环之类的依赖性。 您必须提供表格的文档顺序,必须遵循这些表格以进行填充或维护。 一个危险的替代方案是暂时关闭部分或全部参照完整性约束,并且不要忘记在维护后再次激活它们。