使用额外字段简化多对多关系

时间:2014-06-05 08:54:16

标签: mysql sql many-to-many referential-integrity

我想简化一个多对多关系复合体,由4个字段的密钥组成,其中一个字段用于建立依赖关系( serie :是创建顺序)。

我知道应该打破桌子并保持依赖关系,但经过长时间的阅读和思考,我不知道如何。

包含问题的系统,在第一范式1NF-中表示,其中 Rel_Apply_Lodge 是表示问题的表。

应用

[Key] id_applies

Rel_Apply_Lodge

[Key] [FK] id_applies

[Key] [FK] id_lodging

[Key] [FK] id_kind_boarding

[Key] [extra field] serie < - 解决重复行问题

寄宿

[Key] id_lodging

[FK] id_kind_booking

[FK] id_municipality

1 个答案:

答案 0 :(得分:0)

比以往任何时候都更容易和琐碎。

要解决此问题,请将Many-to-Many关系分成两部分:One-to-Many

成功实现的独特条件是:

  • 维护具有Many-to-Many关系的相同字段。
  • 并在两个实体中添加ID attribute。这些保留了依赖关系并解决了重复问题。

该模型如下所示:

应用 [Key] id_applies

Rel_Apply_Day:< - NEW

[Key] id< - NEW

[FK] id_applies

serie< - 我们可以保留系列指示符

Rel_Day_Lodge:< - NEW

[Key] id< - NEW

[FK] id_lodging

[FK] id_kind_boarding

<强>住宿:

[Key] id_lodging

[FK] id_kind_booking

[FK] id_municipality