Мне нужна помощь в проектировании таблиц, и я не уверен, что будет лучшим вариантом. В основном мне нужно хранить, у кого есть разрешение на использование какого-либо конкретного ресурса Ресурс может использоваться различными типами сущностей и их экземплярами. Например вот простой способ представления того же
У меня есть два разных типа Entity, EntityType1 и EntityType2
(в моем случае это должно быть действительно небольшое число не более 10)
Мы можем иметь несколько экземпляров каждой сущности, которые мы можем идентифицировать
с EntityId
У нас может быть другой тип ресурса R1, R2, R3..etc
Каждый тип ресурса может иметь несколько экземпляров
Существует еще одно требование, согласно которому я могу сказать, что все объекты определенного типа имеют доступ к одному конкретному экземпляру ресурса. Что-то похожее на * в столбце EntityId. У меня также будет индекс для entityId, поэтому я хотел сохранить его только в виде типа INT. Обратите внимание, что я могу иметь запись для всех и конкретной сущности вместе.
Я могу придумать два варианта
- Я выберу некоторый Invalid EntityId для представления всех сущностей (*), таких как 0, -1 или NULL, а затем использую предложение OR, чтобы возвратить, какие все ресурсы допустимы для конкретного entityId. Пример:
EntityType = 'EntityType1' and (EntityId = 1 or EntityId = 0)
- Создайте отдельную таблицу и добавьте новую запись, чтобы указать все права доступа к объекту, а затем присоединитесь к таблице, чтобы вернуть данные.
Может кто-нибудь сказать мне, какие варианты предпочтительнее здесь, или любое другое предложение, я более склонен к варианту 2, так как нам не нужно хранить какое-то недопустимое значение в таблице, чтобы что-то указывать.