在sql中,我有一个用户表。在我的网站上,我希望人们能够使2个或更多的用户组成的组,但我不知道如何存储。人们可以同时成为多个群体的一部分。如果我能做张table groups ,如何将其成员存储在该表中?
groups
pod7payv1#
您描述的是所谓的多对多关系,它需要第三个表:usertable:userid(unique)、username等。grouptable:groupid(unique)、groupname等。用户组:usergroupid(unique)、userid、groupid
bybem2ql2#
你会有一张table的 groups 其中一个打电话来 userGroups . 这些看起来像:
userGroups
create table groups ( groupId int auto_increment primary key, groupName varchar(255) ); create table userGroups ( userGroupId int auto_increment primary key, userId int not null, groupId int not null, foreign key (userId) references users(userId), foreign key (groupId) references groups(groupId) );
iklwldmw3#
第三个表包含一个组的主键(pk)和一个人的pk。这些列是表的主键。您也可以有其他的to列,例如date joined或其他什么。此表中每个人/组有一行。这是一个常见的概念/模式,所以一定要学习和理解它。
3条答案
按热度按时间pod7payv1#
您描述的是所谓的多对多关系,它需要第三个表:
usertable:userid(unique)、username等。
grouptable:groupid(unique)、groupname等。
用户组:usergroupid(unique)、userid、groupid
bybem2ql2#
你会有一张table的
groups
其中一个打电话来userGroups
. 这些看起来像:iklwldmw3#
第三个表包含一个组的主键(pk)和一个人的pk。这些列是表的主键。您也可以有其他的to列,例如date joined或其他什么。此表中每个人/组有一行。
这是一个常见的概念/模式,所以一定要学习和理解它。