Является ли представление прав пользователя лучше в таблице пользователей или лучше в его собственной таблице разрешений?
Разрешения в таблице пользователей
Внесение разрешений в пользовательскую таблицу означает создание столбца для каждого разрешения в таблице пользователя. Преимущество заключается в том, что запросы должны выполняться быстрее, потому что при подключении пользователей к разрешениям пользователя не требуется объединение. Недостатком является то, что наличие большого количества столбцов разрешений помещает таблицу пользователя.
Разрешения в таблице разрешений, соединенные с таблицей User со отношениями "многие-ко-многим"
Выполнение этого способа чисто отделяет разрешения от пользовательской таблицы, но для доступа к разрешениям пользователя требуется объединение двух таблиц. Доступ к базе данных может быть медленнее, но дизайн базы данных кажется более чистым.
Возможно, сохранение разрешений в отдельной таблице лучше, когда есть много разрешений. Каковы другие соображения при принятии этого решения и какой дизайн лучше в различных ситуациях?