|
1 / 1 / 0
Регистрация: 19.11.2015
Сообщений: 9
|
|
Несколько сущностей в одном веб-приложении и каждого свой кабинет.(Аутентификация и авторизация; java, jdbc)07.07.2016, 00:25. Показов 1346. Ответов 5
Добрый день, Уважаемые коллеги. Пишу веб-приложение на java используя servlet API + JSP, DB MySQL + JDBC, Bootstrap и так далее. Подскажите пожалуйста. Заранее очень благодарен. У меня есть три сущности - Клиент(у него свой кабинет и он может записываться на прием к врачу, мед карта, история услуг и их оплаты и так далее, Доктор (тоже свой кабинет, там очень много статистики и функционала), Админ (у него свой кабинет, там тоже очень много разной статистики из базы данных вытягивается). У меня возникло две проблемы. 1.Каким образом создавать эти сущности в Java ? Варианты : 1) Классы (объекты) - Client, Doctor, Admin.(Такие же таблицы в базе данных (Пока-что планирую базу данных привести к первой нормальной форме, а дальше посмотрю.)) 2) Класс User, а у него роли в базе данных, а также тип его сущности. Но как тогда делать связи относящиеся к конкретной сущности в базе данных? И как с ними работать в Java? 2.Как разграничить их аутентификацию, авторизацию и форму для входа на сайт и в свои кабинеты, чтобы клиент не знал о других сущностях и так далее. Помогите пожалуйста советом и подсказкой, так достаточно сильно запутался. Задавайте любые вопросы. Заранее огромное спасибо.
0
|
|
| 07.07.2016, 00:25 | |
|
Ответы с готовыми решениями:
5
Авторизация/аутентификация в приложении с БД MS SQL
Несколько прокси в одном приложении |
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 07.07.2016, 08:48 | |
|
Konstantin10, правильно создавать таблицу USER и назначать ему роли. Если подразумевается только одна роль, то записывать её в поле, если много, сделать отдельную таблицу.
Использовать servlet API + JSP нерационально т.к это устаревшая технология. Для такого проекта подойдет Spring Boot + Vaadin JDBC так же давно устарел и есть куда более удобные инструменты для работы с БД Спринг так же решает проблемы авторизации пользователей в системе. Одним словом если вы начинаете новый проект, нет смысла использовать устаревшие технологии.
0
|
|
|
1 / 1 / 0
Регистрация: 19.11.2015
Сообщений: 9
|
|
| 07.07.2016, 09:43 [ТС] | |
|
Большое спасибо за ответ.
Но меня к сожалению интересовали не технологии мною используемые,а реализация функционала. Если в базе данных, все мои сущности храняться в таблице User, то как мне реализовать связи в базе данных? Например у доктора есть рабочая смена и так далее, а админа и простого клиента нету у них свои связи. И еще много связей есть у одного, но нет у другого Заранее признателен за помощь.
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 07.07.2016, 10:47 | |
|
Konstantin10, если вам нужен совет по проектированию структуры БД, задайте вопрос в соотв. разделе. Кроме того неплохо бы указать ваши функциональные требования. Как из первого поста следует что у доктора рабочая смена и какие связи есть у других типов юзеров?
В целом это неважно какие есть связи. Для рабочей смены создается отдельная таблица и в ней создается foreign key. К таблице юзеров. Для более подробного ответа, создайте тему в соотв. разделе. Ну и совет по технологиям это вам бонус. Использование устаревших технологий идет вам в минус как программисту если вы собираетесь строить приложение как проект для резюме. Если же это реальный проект, то это ещё хуже т.к значительно увеличит время разработки и понизит качество продукта.
1
|
|
|
1 / 1 / 0
Регистрация: 19.11.2015
Сообщений: 9
|
|
| 07.07.2016, 11:28 [ТС] | |
|
Спасибо за Ваши быстрые ответы.
Сейчас я Вам все уточню. Проект действительно для резюме. Во-первых, по поводу технологий. Я хочу использовать в этом проекте технологии по нарастающей. То есть в версии 1.0 -Servlet API + JSP, JDBC, и так далее. Версия 1.1 или 2.0(там будет видно) - Уже вместо JDBC, буду использовать JPA или Hibernate. В версии 3.0 + Spring. И так далее. Во-вторых, по поводу связей. У меня в слое с сущностями (было Client, Doctor и Admin),теперь класс User c ролями ROLE_CLIENT, ROLE_DOCTOR, ROLE_ADMIN. Client, то есть User с ролью ROLE_CLIENT, может записаться на прием к доктору (User с ролью ROLE_DOCTOR), просмотреть свою мед. карту, получить счет к оплате и так далее. А у User с ролью ROLE_DOCTOR, есть все записавшиеся на прием(и у записи на прием свой статус,в каком она состоянии) , рабочая смена - оказанные услуги, записи в мед карты и так далее. user id=? role = ROLE_DOCTOR имеет все связи и данные(по внешнему ключу) что должны быть у доктора, а user id=?, role = ROLE_CLIENT имеет связи и данные, что должны быть у клиента, но не имеет данных(по внешнему ключу) тех, что имеет доктор. и так далее. Так вопрос в том, что получается в Java классе User нужно атрибутами указывать все связи что есть и у клиента и у доктора, но получается, что если создаем объект User с ROLE_CLIENT, то у него свои данные в полях хранятся, а поля, что относятся к доктору остаются null ?.
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 07.07.2016, 12:03 | ||
|
Konstantin10, во-первых определитесь о чем вы спрашиваете. Структуру БД или структуру модели вашего приложения.
Относительно вашего вопроса о модели есть два варианта. 1. В классе User должна быть информация только о юзере (имя, меил и.т.д). Всякие связи не должны сидеть в этом классе. В идеале у вас вообще не должно быть аггрегативных связей в модели т.к это доставит вам проблем в будущем. Таким образом у вас будет например класс ЗаписьКДоктору в котором будет поле Long doctorId которое будет связывать это сущность с доктором 2. Наследование. В модели вы создаете классы доктор, админ, пациент, наследуете их от юзера и прописываете все связи в классах. Такой подход может быть более привычным, однако в будущем такой проект будет страдать от того что будет сильно грузить БД при более или менее высоком траффике.
0
|
||
| 07.07.2016, 12:03 | |
|
Помогаю со студенческими работами здесь
6
Несколько сокетов в одном приложении Несколько сокетов в одном приложении
Несколько Proxy в одном приложении Несколько форм OpenGL в одном приложении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|