【问题标题】:database design: can you mix many-to-many and many-to-one relationships?数据库设计:你能混合多对多和多对一的关系吗?
【发布时间】:2014-01-03 11:00:02
【问题描述】:

假设我有两个表,FirstTableSecondTable。它们具有一对多的关系,因此 SecondTable 有一个外键:FirstTableID。我必须重新设计数据库,因为在(非常)罕见的情况下,SecondTable 实体也可以属于更多(通常是 2-3)FirstTable 实体,所以这显然是很多- 多关系。

我的问题是:多对多关系很少发生(我们出售更多的系统副本,并且在大多数副本中,它们始终具有一对多的关系,这是有保证的)。保留外键并在系统中检查其值为0是否是明智之举,然后系统将在多对多表中搜索关系?在大多数情况下,我们可以通过这种方式避免拥有整个冗余表。但这会违反一些数据库设计原则吗?

【问题讨论】:

    标签: database many-to-many many-to-one mixing


    【解决方案1】:

    您可能会避免使用大部分冗余的表,但最终可能会得到一堆冗余代码,每个代码都有两个版本。我会保持设计一致,避免每次需要更改时都考虑这两种替代情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      • 2013-11-20
      • 2011-04-13
      • 1970-01-01
      相关资源
      最近更新 更多