Как сохранить группу, содержащую больше пользователей в SQL?

0

В SQL у меня есть таблица для пользователей. На моем веб-сайте я хочу, чтобы люди могли создавать группы, состоящие из 2 или более пользователей, но я не знаю, как их сохранить. Одновременно люди могут быть частью нескольких групп. Если я бы сделать таблицу groups, как я мог бы хранить его члены в этой таблице?

Теги:

3 ответа

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)
);
  • 2
    Я бы предложил уникальное ограничение для ФК, если вы собираетесь использовать суррогатный ключ.
0

То, что вы описываете, называется отношением "многие ко многим", и для этого требуется третья таблица:

  • UserTable: UserID (уникальный), UserName и т.д.
  • GroupTable: GroupID (уникальный), GroupName и т.д.
  • UserGroups: UserGroupID (уникальный), UserID, GroupID
0

С третьей таблицей, содержащей первичный ключ (pk)) группы и pk человека. Эти столбцы представляют собой pk таблицы. У вас могут быть и другие столбцы, например, дата присоединена или что угодно. У вас есть одна строка в этой таблице на человека/группу.

Это общая концепция/образец, поэтому убедитесь, что вы учитесь и понимаете это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню