如何在单个表

时间:2015-09-14 12:45:26

标签: mysql database database-design

我有一个表用户,其中有3个字段具有多个值。领域是流程,项目和经理。用户可以为这些字段选择多个值。

截至目前,我为每个字段创建了单独的表,例如user_process,user_project和user_manager。所有这些表都有主用户表的引用键。这是正确的方法吗?我必须创建4个表来存储一组单个记录。有没有更好的方法来做到这一点,提供更好的性能。

1 个答案:

答案 0 :(得分:0)

你是对的。你也可以选择那种设计。更灵活的设计可能是:
用户(ID,U1,U2)
过程(ID,P1,P2)
项目(ID,PR1,PR2)
经理(ID,M1,M2,M3)
UserProcess(fk_to_user,fk_to_process):[M:M关系]
UserProject(fk_to_user,fk_to_project):[M:M关系]
UserManager(fk_to_user,fk_to_manager):[M:M关系]

我在这里假设:
1.可以有多个进程的用户或者单个进程的许多用户 2.可以有分配给多个项目的用户或分配给单个项目的多个用户 2.可以有向多位经理报告的用户或向单一经理报告的许多用户。

如果上述任何内容不符合您的要求,您可以忽略相应的M:M关系