Mysql 用附加域简化多对多关系

Mysql 用附加域简化多对多关系,mysql,sql,many-to-many,referential-integrity,Mysql,Sql,Many To Many,Referential Integrity,我想简化一个多对多关系复合体,它由键和4个字段组成,其中一个字段用于建立依赖序列:即创建顺序 我知道应该打破表格,保持依赖关系,但在阅读和思考了很长时间后,我不知道该怎么做 在包含问题的系统下方,以第一个标准形式1NF-表示,其中Rel_Apply_Lodge是显示问题的表格 适用于: [键]id_适用 Rel_Apply_Lodge: [Key][FK]id\u适用 [Key][FK]id\u住宿 [钥匙][FK]身份证 [Key][extra field]serie这比它想象的更简单、更琐碎

我想简化一个多对多关系复合体,它由键和4个字段组成,其中一个字段用于建立依赖序列:即创建顺序

我知道应该打破表格,保持依赖关系,但在阅读和思考了很长时间后,我不知道该怎么做

在包含问题的系统下方,以第一个标准形式1NF-表示,其中Rel_Apply_Lodge是显示问题的表格

适用于:

[键]id_适用

Rel_Apply_Lodge:

[Key][FK]id\u适用

[Key][FK]id\u住宿

[钥匙][FK]身份证


[Key][extra field]serie这比它想象的更简单、更琐碎

为了解决这个问题,我们将多对多关系分成两部分:一对多

成功实现的独特条件是:

维护具有多对多关系的相同字段。 并且,在这两个实体中添加一个ID属性。这样可以保持依赖关系并解决重复问题。 模型如下所示:

适用于: [键]id_适用


Rel_Apply_Day:您试图模拟的情况是什么??目标:管理住宿/托管申请。用户历史记录:一个人申请住宿,就在此时,一个关系Rel_apply_Lodge被创建。此关系存储为:id\u申请、id\u住宿和id\u种类\u住宿。问题:对于每个请求,存储一个注册表。如果一个人怎么需要申请三天,并通过相同的托管,是当系统存储相同的三行。此时“系列/订单”字段保持相关性并避免重复。为什么不在住宿表中添加天数或持续时间作为属性。因为天数与住宿实体无关。住宿管理可供用户使用的住宿。如果添加了属性天数,则应在其他实体中执行。为什么?因为当你有住房要出租时,不需要指定天数,这将由用户选择