База данных. Имеются юзеры (таблица users, поля - user_id, name) Имеются группы (таблица groups, поля - group_id, name)
Один юзер может состоять в нескольких группах.
Какие могут понадобится действия: 1. Выборка всех юзеров, [не] состоящих в определенной группе. 2. Выборка всех групп, в которых состоит юзер. 3. Проверка, состоит ли юзер хотя бы в одной группе из перечисленных
Раньше я делал так: Заводил третью таблицу usergroups с полями user_id, group_id, объединенными в primary key (unique). Соответственно, выбори были как минимум из 2-х таблиц одновременно.
Недавно в голову пришел другой способ - банально хранить список юзерских групп в таблице с юзерами в одном текстовом поле через запятую. Соответственно, все выборки сужаются до одной таблицы - почти любая проверка проходит через FIND_IN_SET.
Но вот что-то меня в этом втором способе смущает... Мот кто подскажет, что именно? :-)
P.S. Предполагается, что юзеров заведомо больше, чем групп. Групп - порядка 10, юзеров - 1k-10k.