如何设计这个数据库部分?

时间:2013-12-16 09:59:28

标签: php mysql database database-design

我正在使用PHP和MySQL。

我有一个用户表和一个组表。 我的问题是,如何在组中实现系统,以便我可以访问属于该组的所有用户ID。

示例:我在users表中有John,Mary和Alex。 John是id 1,Mary是2,Alex是3。

现在我该如何将这些用户添加到群组用户?我不能只添加“user_1”,“user_2”,“user_3”等字段。如果该小组有1000名成员怎么办?

4 个答案:

答案 0 :(得分:2)

您需要另一个至少包含user_id和group_id

的表

用户和组之间的关系是m:n - 用户可以是多个组的一部分,一个组可以包含多个用户。

答案 1 :(得分:1)

您可以添加两个数据库表:

tbl_users
id
group_id
name

tbl_groups
id
name

在用户表中保存组ID。

答案 2 :(得分:0)

您可以拥有一个分组表和用户表。在group表中添加groupid作为外键 喜欢:

tbl_group : id: int(11) Auto Increment - P.K
          : group_name: varchar(500)

tbl_users : id: int(11) Auto Increment - P.K
          : user_name: varchar(20)
          : group_id:  int(11) - Foreign Key - // Foreign Key to groups Table.    

如果您希望许多用户想要加入多个群组,那么

tbl_group : id: int(11) Auto Increment - P.K
          : group_name: varchar(500)

tbl_users : id: int(11) Auto Increment - P.K
          : user_name: varchar(20)

tbl_user_group : id: int(11) Auto Increment - P.K
               : group_id:  int(11) - Foreign Key - // Foreign Key to groups Table.  
               : user_id:  int(11) - Foreign Key - // Foreign Key to usersTable.      

答案 3 :(得分:0)

为用户支持多个群组的答案:

tbl_users
id
name

tbl_groups
id
name

tbl_user_groups
id
user_id
group_id

因此我们可以建立 n:n 关系(许多用户多个群组)。