|
1 / 1 / 0
Регистрация: 19.11.2015
Сообщений: 9
|
|
Несколько сущностей в одном веб-приложении и каждого свой кабинет.(Аутентификация и авторизация; java, jdbc)07.07.2016, 00:25. Показов 1335. Ответов 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 в одном приложении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|