возник вопрос в проектировании отдельной части базе данных, в частности при использовании Spring Security(Java) у меня будет две роил USER и ADMIN. Соответсвенно и вопрос заключается в следующем как лучше это спроектировать. Стоит ли делать разные таблицы для пользователей и для администраторов? Либо стоит добаить логическое поле у таблицы пользователей is_admin? Хотелось бы получить внятный ответ по поводу этого, не только затрагивая Spring Security, но и в целом как это лучше всего реализовать. Заранее спасибо...
Конкретно насчёт Spring Security смотрите тут.
Делать отдельные таблицы на различные роли не стоит.
Как правило делается таблица пользователей (скажем, TBL_USER
), таблица ролей (TBL_ROLE
) и связывающая их таблица (TBL_USER_ROLE
). Иногда добавляют группы.
Вам нужна связь один-ко-многим
2 таблиц Users
и Roles
. В первой будут храниться собственно юзеры. Во второй будут записи userId
и userRole
. Так у вас могут получиться юзеры с разным набором ролей. Собственно роли также можно хранить в отдельной таблице и вместо userRole
записывать roleId
. Это гибкая и удобная реализация, она используется, в частности в Spring security
, ибо для интерфейса UserDetails
требуется реализовать метод получения authorities
юзера, коий и есть суть его роли.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
объект должен быть не MARS, SNICKERS или TWIX а именно ChocolateBars
Столкнулся со странной проблемой возможности добавления в Set одинаковых объектов (equals и hashSet переопределены) после сериализацииРасскажу...
подскажите пожалуйста, как добавить строки в sqlite? В массиве лимит 12 строк, в sqlite попадает только 1 строкаВот код sqlite: