Недостатки моделирования ролей в виде логических столбцов на пользовательской таблице - PullRequest
0 голосов
/ 01 ноября 2010

Я работаю над приложением Rails, использующим CanCan для RBAC, и у меня есть только 3 роли, и может быть Я добавлю еще 1 или 2 где-нибудь в будущем.В прошлом у меня всегда были роли как их собственная сущность, присоединенная к пользователям через таблицу ссылок m2m.С таким небольшим количеством статичных ролей это кажется излишним.Поэтому я думаю просто добавить логические столбцы в мою таблицу Users для каждой роли.Я также мог бы использовать битовую маску (как это делает пример CanCan), но я не слишком заинтересован в хранении нескольких значений в одном столбце.

Поэтому мой вопрос: что лучше всего делать в этой ситуации:битовые маски, несколько логических столбцов или правильно нормализованные отношения m2m?

1 Ответ

1 голос
/ 01 ноября 2010

Работа по принципу YAGNI привела бы к моему решению использовать отдельные битовые столбцы для каждой роли.Даже если вы добавите еще пару столбцов с течением времени, им все же будет легче управлять, чем таблицей ссылок m2m.Я полностью согласен с тем, что не использую битовые маски, поскольку они скрывают значение данных.

Я обращаюсь к этому только со стороны SQL, поскольку у меня нет опыта работы с Rails, CanCan или RBAC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...