联结表中的属性取决于主键 [duplicate]

Attribute in junction table depends on the primary key [duplicate]

提问人:Gabi23 提问时间:11/13/2023 最后编辑:ShadowGabi23 更新时间:11/13/2023 访问量:19

问:

我有一个联结表,用于在属性及其策略之间建立多对多关系

property_id 和 policy_id构成主键。

作为附加属性,我希望存储一个值或有一个外键引用。该值可以指一系列内容,例如天数、罚款金额,甚至可以链接到存储在另一个表中的罚款金额。因此,该值所指的类型不一致 - 这似乎不对。

作为替代方案,我可以创建多个属性,然后为给定的数据记录保留除一个属性之外的所有属性,但是,我不喜欢这样,因为如果添加其他策略,我必须随着时间的推移增加表中的属性数量。

如何解决这个问题?

mysql 属性 foreign-keys junction-table

评论

0赞 P.Salmon 11/13/2023
“property_id和policy_id构成主键”——如果一个属性可以有很多策略,那就不对了。此外,属于保单的内容应该在保单表中,如果有些东西不容易放在那里,它们应该在单独的表中,例如,保费支付将在交易表中,索赔将在索赔历史表中等
0赞 Gabi23 11/13/2023
@P.Salmon 有一个复合键,正是出于这个原因 - 允许每个属性有多个策略。此外,保单的价值也取决于酒店(例如,一个酒店的取消费用可能与另一个酒店不同),因此我将其放在交界处表中。
0赞 Shadow 11/13/2023
您似乎在描述的是实体-属性-值 (EAV) 数据模型,它是一种在其他不灵活的关系数据库环境中拥有灵活属性集的方法。EAV 的挑战之一是存储不同数据类型的值。

答: 暂无答案