Как мне записать в базу данных, что элемент / продукт виден «всем» группам?

Пользователь может быть в группах. И элементу / продукту назначаются группы, которые могут видеть элемент. Пользователи могут видеть этот элемент, если они находятся в одной из назначенных групп .

Я не хочу, чтобы ни общедоступные (анонимные пользователи без групп), ни пользователи без групп (вошедшие в систему пользователи не в каких-либо группах) видели этот элемент. Но я хочу, чтобы интерфейс позволял назначать элементу атрибут «все / любые группы». так что пользователи, которые находятся в любой группе, могут видеть элемент.

Где / как мне сохранить это назначение?

ps Я ожидаю, что этот метод будет распространен и на другие сущности, например, я бы назначил файл в категорию, а группы связаны с категориями. поэтому, когда файл помечен как видимый «все / любая категория», тогда, если пользователь (через группы и группы-категории) связан хотя бы с одной категорией, то файл

Решение:

Казалось, что выбор заключался в том, реализовать ли это в виде строки в таблице групп сущностей или в виде полей в таблице сущностей. он выбрал ответ, использовавший первое.

И либо управление членством в группе в таблице, либо добавление условий JOIN. В выбранном ответе использовалось первое, но я собираюсь использовать второе.Я устанавливаю косвенное указание между запросом и использованием, поэтому, если (когда) производительность является проблемой, я должен иметь возможность перейти на управляемую таблицу внизу (как предлагается) без изменения использования.

У меня есть другие специальные группы, такие как «администратор», «пользователи» и т. Д., Которые также могут вписаться в ту же концепцию (основа - просто список групп) легче, чем специальная и переменная обработка полей для каждой сущности.

всем спасибо.

5
задан poop-deck 12 October 2011 в 06:27
поделиться