数据库设计:你能混合多对多和多对一的关系吗?

时间:2014-01-03 11:00:02

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

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

我的问题是:多对多关系很少发生(我们销售更多的系统副本,而且在大多数副本中,它们始终保持一对多的关系,保证)。保留外键是一个明智的举措,如果它的值为0,检查系统,那么系统会搜索多对多表中的关系吗?在大多数情况下,我们可以避免以这种方式使用整个冗余表。但它会违反某些数据库设计原则吗?

1 个答案:

答案 0 :(得分:0)

您可能会避免使用大多数冗余的表,但您可能最终会得到一堆冗余代码,每个代码都有两个版本。我保持设计的一致性,避免每次需要更改时都考虑两个备用案例。