小编la_*_*ong的帖子

为什么在一对多关系中我需要第三张表?

再会,

我们大学的 db 教授总是说,在一侧与 (0, M) 的一对多关系必须有第三个表来关联它们。我当时没有问他,现在我也不能,但我想知道他为什么要这样说?(特别是必须的部分)。

我正在建模一个简单的传感器测量活动数据库,我对此感到非常困惑,您如何看待我的模型,它会按我的预期工作吗?这与我的问题有关,因为我正在做与我所教的完全不同的事情,而且我害怕构建一个损坏的模型。

传感器测量运动模型

传感器有 0 或 M 个度量,一个度量恰好属于一个传感器。活动有 0 或 M 个传感器,一个传感器可能在 0 或 N 个活动中。活动有 0 或 M 个度量,一个度量完全属于一个活动。

使用我教授的方法,我得到 6 个表(每对中间表)。我认为不需要其中的 2 个表,但理解这就是这个问题的目的。

忽略他,我得到了 Measure 和另一个表(多对多中的第三个表,我称之为 Instrument)都关联的 Campaign 和 Sensor。我认为拥有这样一种双重关系看起来是错误的,注意到 Measure 和 Instrument 都会有 FK 到 Campaign 和 Sensor(Instrument 就像一个空的度量,IMO),我决定简单地做我所做的。

我可能需要查询任何组合(给定活动的传感器/测量值和给定传感器的测量值),我想我可以轻松(?)做到这一点(在涉及测量时使用子查询)。我还希望,如果我删除一个活动或一个传感器,它的度量会被删除,我可以通过删除级联轻松实现这一点。会有什么缺点?

对不起,新手问题,任何帮助将不胜感激。我已经用谷歌搜索并没有发现任何东西,也许我使用了错误的术语,我不是在这里假装垃圾邮件。至少对 Google 搜索进行更智能的查询将不胜感激,谢谢。

database-design many-to-many

6
推荐指数
2
解决办法
2884
查看次数

标签 统计

database-design ×1

many-to-many ×1