【发布时间】:2015-09-22 10:46:10
【问题描述】:
我有以多对多关系的membership_person链接表链接在一起的membership和person表(列:person_id和membership_id)
每个人都可以拥有一个或多个地址、电话和电子邮件。这些存储在单独的表中,例如地址、电话和电子邮件表。
我现在面临的新情况是一个人拥有多个会员资格,但他/她更喜欢为每个会员资格使用不同的地址、电话号码和电子邮件。
这是一个例子:
M1 => P1
=> address-1
=> phone-1
=> Email-1
M2 => P1
=> address-2
=> phone-2
=> Email-2
M3 => P1
=> address-3
=> phone-3
=> Email-3
处理上述问题的数据库最佳实践是什么?我应该创建一个单独的链接表,例如membership_address、membership_phone 和membership_email?或者只是将 address_id、phone_id、email_id 添加到现有的 members_person 表中?
谢谢:)
【问题讨论】:
-
您说地址与会员资格相关联,而不是与人相关联。个人和会员资格之间存在多对多关系,会员资格和地址之间存在一对一关系。
-
多人可以拥有相同的会员资格吗?如果没有,membership_person 链接表似乎是不必要的。
-
是的,马克,一个人可以有 0 个或多个会员资格,一个会员资格可以有一个或多个人。
-
@GilbertLeBlanc,会员和地址之间也可以是多对多。请参阅第一个答案中的 cmets。
标签: database-design relational-database