Я хочу организовать на своем сайте группы людей, чтобы каждый мог заходить/выходить, создавать/удалять свои группы, в базе данных имеются стандартные столбцы: id, логин, пароль, аватар, email..., теперь придется создать ещё 2 таблицы, одну таблицу со значениями: id группы, аватарка, и таблицу пользователи групп со значениями: id пользователя, логин, аватарка и id группы в которой он состоит. Например, когда пользователь нажимает кнопку вступить в группу, то в базу данных записывается id группы, надеюсь я копаю в верном направлении?
Примерно такая концепция и была описана в вопросе, только в 3 таблице ведь достаточно 3 значений? ID с AI (авто добавление), id страницы пользователя, и id группы в которую он добавился
Нет. 2 таблицы: пользователи, группы. Соответственно в одном из полей храните соответствие пользователя группе , либо наоборот.
3 табльца опциональна, в ней id группы и id пользователя. Но нужна она если пользователь может принадлежать многим группам.
Просто так будет немного удобнее получать информацию о группе и ее пользователях, ведь если добавить в первую таблицу пользователи где уже есть целых 8 значений(id, логин, аватар, емейл, пароль, активирован ли аккаунт и ещё парочка столбцев)! Для меня немного проще создать отдельную таблицу . К примеру, вы зашли ко мне в группу как зарегистрированный пользователь, вы видите кнопку вступить в группу, после того как вы нажимаете ее, на сервер отправляется запрос в виде, добавить в базу данных: id (AI, 1 новый пользователь, 1 новая запись), и id группы в которой вы нажали кнопку, достать это значение легко, благо есть такая вещь как $_GET['id]. Когда я зайду в группу, то отправляется запрос на сервер: 1) Получить id группы, 2)сделать запрос в базу данных какие пользователи записаны с таким id 3)Вывести их всех
3 таблица может пригодиться в любых случаях: 1) Если XXX вступил в 1 группу = запись в таблице id, id XXX, id группы, 2)Если XXX вступил в несколько групп = запись в таблице id, id XXX, id группы и дальше будет добавляться лишь записи в таблицу и скрипт будет искать юзеров по id группы
3 таблицы верное решение, только в третьей не надо хранить логин и аватарку, как вы предложили в вопросе. Можно хранить дату вступления в группу и роль в группе или статус в группе,т.е. то, что относиться к пользователю и группе одновременно.