возник вопрос в проектировании отдельной части базе данных, в частности при использовании 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 юзера, коий и есть суть его роли.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей