我有两个父表,BusinessGroup和SocialGroup,以及一个子表,Members。成员可以属于任何一方,但不能同时属于两方。最好的MySQL表结构:2个父母,1个孩子
据我所见,有两种构建子表的选项。
选择1:为ParentType包含一个字段,为ParentID包含另一个字段。 ParentType将是一个枚举(Business,Social),ParentID将是相应父表中的PK。
选项2:为BusinessGroupID添加一个字段,为SocialGroupID添加另一个字段。在这种情况下,这些字段需要可以为空,并且只能包含一个值。
关于哪种方法最好的想法?
我尝试了MySQL中的选项1,并从孩子创建了两个外键给父母。尽管插入值时我遇到了麻烦,因为MySQL在两个父表中都希望有相应的值。
作为一个补充问题:如果我有更多的父母,例如, 6?
谢谢!
注:选项#2包括所谓专属弧形,并且被普遍认为是不好的做法。 请看这两个问题,他们可能会帮助你: http://stackoverflow.com/questions/987654/in-a-stackoverflow-clone-what-relationship-should-a-comments-table-have-to-任务/ 987685#987685 http://stackoverflow.com/questions/621884/database-development-mistakes-made-by-appdevelopers – 2010-07-21 03:36:42