我有成员表和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添加到现有的membership_person表中?
谢谢:)
发布于 2015-09-22 11:09:56
这称为关联数据--关于两个实体之间关联的数据--并将其存储在关联表中。
类似于(使用mysql语法):
create table membership_person (
person_id int not null references person,
membership_id int not null references membership,
address_id int not null references address,
phone_id int not null references phone,
email_id int not null references email,
primary key (person_id, membership_id)
)额外的3列为每个成员定义一个人的联系人实体。
发布于 2016-02-10 17:01:24
扩展,下面是一个建议。
Table:Membership_Person
复合主键 (membership_id,person_id,table_id,优先级)
字段
https://stackoverflow.com/questions/32714869
复制相似问题