Как создать группы, как в WhatsApp в базе данных MySQL

Я работаю над программой, в которой я хотел бы создать группу с пользователями, которая всегда там и сохраняется в базе данных MySQL. Я просто понятия не имею, как это сделать. Я имею в виду, я мог бы создать таблицу, как:

GROUPID INT PRIMARY KEY
GROUPNAME TEXT
USER1ID INT
USER2ID INT
USER3ID INT

Затем я должен был бы создать таблицу, которая может принимать, как, скажем, в данном случае 3 пользователя, но разве это не бесполезно и нет возможности динамически увеличить группу. Если я хочу сделать список друзей из группы, я также не могу сказать, что у пользователя может быть только 3 друга. Как я могу решить эту проблему?

1 ответ

Решение

Вам нужно 2 таблицы:

GROUPS - GroupId, GroupName
USERS - UserId, UserName, Password, GroupId

GroupId в USERS связывает записи пользователя с группами. Вы можете (должны) также навязать ссылку, используя внешний ключ.

Если пользователь может принадлежать к нескольким группам, вам понадобится отношение " многие ко многим". Это достигается с помощью третьей таблицы, которая выглядит следующим образом:

GROUPS - GroupId, GroupName 
USERS - UserId, UserName, Password
USERS_GROUPS - UserId, GroupId
Другие вопросы по тегам