我应该为所有表使用用户的外键吗?

时间:2017-12-15 01:57:01

标签: php mysql key

到目前为止,我有四张桌子。它们被命名为:

用户, 帮派, gang_business, 帮派成员, gang_weapons

我试图找出是否应该使用“user”或“gang”表的主键作为“gang_business”,“gang_members”和“gang_weapons”表的外键。 “gang”表将用户的主键作为外键。我想弄清楚哪条路是最好的路线。请给我你最好的建议和反馈。谢谢。

  • 用户表:(user_id,user_name,user_email,user_password)
  • 帮派表:(gang_id,user_id,gang_name,gang_color,gang_idelogy)
  • gang_business :( business_id,user_id和/或gang_id,bar,restaurant,
    赌场等)

2 个答案:

答案 0 :(得分:1)

这取决于用户和帮派表中的关系。

我会用这些表格来做:

用户:(身份证,姓名,电子邮件,密码)

gang:(id,name,color,idelogy)

gang_members:(user_id,gang_id)

user_weapons:(user_id,weapon_id)

gang_business :( gang_id,business_id)

武器:(id,name,...)

business:(id,name,...)

我只会在列为外键时为列添加前缀。

我认为武器属于用户,企业属于帮派。

答案 1 :(得分:0)

如果只有帮派成员可以成为gang_business和gang_members的成员,那么你应该使用帮派表的PK。您不应该使用用户PK,因为这是超级组,其中帮派表是子组。