Каков наилучший способ управления разрешениями для веб-приложения - битовая маска или таблица базы данных?
думаю, лучший способ разработать систему разрешений для "админ» веб приложение. В приложении может быть много пользователей, каждому из которых может быть назначена определенная роль; некоторым из этих пользователей может быть разрешено выполнять определенные задачи вне роли.
Я могу придумать два способа создать это: один, с "разрешения» таблица со строкой для каждого пользователя и логические столбцы, по одному для каждой задачи, которые назначают им разрешения для выполнения этих задач. Как это:
User ID Manage Users Manage Products Manage Promotions Manage Orders 1 true true true true 2 false true true true 3 false false false true
Еще один способ, о котором я подумал, - использовать битовую маску для хранения этих пользовательских разрешений. Это ограничит число задач, которыми можно управлять, до 31 для 32-разрядного целого числа со знаком, но на практике мыМаловероятно, чтобы пользователь имел более 31 конкретной задачи. Таким образом, схема базы данных будет проще, и мы бы неНе нужно менять структуру таблицы каждый раз, когда мы добавляем новую задачу, которая требует контроля доступа. Как это:
User ID Permissions (8-bit mask), would be ints in table 1 00001111 2 00000111 3 00000001
Какие механизмы обычно используют здесь люди и почему?
Спасибо!