Задать вопрос
@Krasovsky

Как создать связь поля в 1 таблице с несколькими записями в другой?

Доброго дня!
Пожалуйста подскажите хорошую практику!
У меня есть поле(group) в таблице(обзовем ее user), с полем groups, в котором как вы поняли, я планирую держать группу(ы) пользователя. И соответственно таблица groups. Все бы ничего - сделать связь 1 к 1му, но пользователь может иметь несколько групп. Как в таком случае лучше поступить?
1 полу group сделать varchar, и хранить список idшников групп через запятую, к примеру, но тогда отсортировать юзеров по группам не представляется возможным. Да и деть придется два запроса к базе что бы получить юзера и его группы.
2 создавать третью таблицу, для коннекта юзеров с группами? Это лишняя таблица и путаница, сложность запросов. Хотя склоняюсь к этому варианту,
Но возможно есть какие то нетривиальные методы/техники, как вы, дорогие господа, решаете такую задачу?
  • Вопрос задан
  • 171 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
  • Академия Эдюсон
    FullStack-разработчик: тариф PRO
    14 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Java-разработчик + ИИ
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Стандартная связь многие-ко-многим - через дополнительную таблицу.
Ответ написан
Комментировать
@dev2expert
1 полу group сделать varchar, и хранить список idшников групп через запятую, к примеру, но тогда отсортировать юзеров по группам не представляется возможным. Да и деть придется два запроса к базе что бы получить юзера и его группы.

Как потом будете отбирать группы? С помощью LIKE?
А удалять группы у пользователей? Получать, парсить, удалять и записывать?

2 создавать третью таблицу, для коннекта юзеров с группами? Это лишняя таблица и путаница, сложность запросов. Хотя склоняюсь к этому варианту,

Дополнительная таблица в вашем случае лучший вариант.
Ответ написан
Комментировать
@edojdikov
Senior PHP developer
В плане нормализации данных только 2-ой вариант: создать 3-ю таблицу со связями id_user / id_group.
В таком случае при больших объемах данных у вас будет меньше ресурсов кушаться при запросе. Проверенно на личном опыте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы