Итак, у меня есть база данных, которая имеет структуру примерно такую:
[user_table] user_id, name, active
"john", "John S. Smith", true
[group_table] group_id, description, active
"abc", "test group", "true"
"cba", "second group", "true"
"bca", "third group", "true"
Так что теперь я хотел бы скрыть группу "abc" от "john".Я создаю новую таблицу с именем «hide_group» с полями user_id и group_id.Я вставляю соответствующие значения и все хорошо.Но это не очень хорошо оптимизировано.Что если у меня 20 пользователей и сотни групп?Это будет означать сотни новых записей.Есть ли более оптимизированный способ сделать это с отношениями?Я использую движок MyISAM, и, если я вспомню, я не могу использовать внешний ключ с ним.Я читаю документацию по MySQL, но для меня это все еще неясность.Может быть, кто-то может указать мне правильное направление?
изменить, моя структура таблицы выглядит примерно так:
[group]
group_id, group_description
[group_hide]
group_id, user_id, hide
Я хочу выбрать все группы, которые находятся под таблицей "группа".За исключением тех, которые скрыты внутри таблицы group_id.Как я могу это сделать?Прямо сейчас я могу сделать это либо только выбрать все записи в таблице group_hide (что мне не нужно), либо просто все записи внутри группы, игнорируя все, что находится в group_hide.Я бы не хотел выбирать группы, которые должны быть скрыты, но все остальное должно быть видно.