如何在sql中存储包含更多用户的组?

lymnna71  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(289)

在sql中,我有一个用户表。在我的网站上,我希望人们能够使2个或更多的用户组成的组,但我不知道如何存储。人们可以同时成为多个群体的一部分。如果我能做张table groups ,如何将其成员存储在该表中?

pod7payv

pod7payv1#

您描述的是所谓的多对多关系,它需要第三个表:
usertable:userid(unique)、username等。
grouptable:groupid(unique)、groupname等。
用户组:usergroupid(unique)、userid、groupid

bybem2ql

bybem2ql2#

你会有一张table的 groups 其中一个打电话来 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)
);
iklwldmw

iklwldmw3#

第三个表包含一个组的主键(pk)和一个人的pk。这些列是表的主键。您也可以有其他的to列,例如date joined或其他什么。此表中每个人/组有一行。
这是一个常见的概念/模式,所以一定要学习和理解它。

相关问题