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

时间:2018-07-09 23:00:42

标签: mysql sql

在SQL中,我有一个供用户使用的表。在我的网站上,我希望人们能够建立由2个或更多用户组成的组,但是我不知道如何存储。人们可以同时属于多个小组。如果我要创建一个表dynamodb = Aws::DynamoDB::Client.new( access_key_id: "xxxx", secret_access_key: "xxxxx", region: ENV['AWS_REGION'] ) ,该如何在表中存储其成员?

3 个答案:

答案 0 :(得分:1)

您将有一个表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)
);

答案 1 :(得分:0)

您所描述的被称为多对多关系,它需要第三个表:

  • UserTable:用户ID(唯一),用户名等
  • GroupTable:GroupID(唯一),GroupName等
  • UserGroups:UserGroupID(唯一),UserID,GroupID

答案 2 :(得分:0)

第三个表包含一个组的主键(pk)和一个人的pk。这些列是表格的pk。你可以有其他 列也是如此约会的日期或其他。每个人/组在此表中都有一行。

这是一个常见的概念/模式,因此请确保您学习并理解它。