Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.07.2016, 00:25
Ответы с готовыми решениями:

Авторизация/аутентификация в приложении с БД MS SQL
Как можно более удобно сделать процесс авторизации с труднейшим способом ее взлома. Если писать в коде - код легко доступен - взлом легкий....

Авторизация в веб-приложении
Извините за глупый вопрос, но можете подсказать, как реализовать авторизацию в веб-приложении ASP.NET c поддержкой MVC? Мне нужно, чтобы в...

Несколько прокси в одном приложении
Всех приветствую! Недавно я начал изучать Си++, вот пишу мою программу... Проблема в следующем... В программе задаются 10 прокси из...

5
Эксперт Java
 Аватар для KEKCoGEN
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
Эксперт Java
 Аватар для KEKCoGEN
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
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
07.07.2016, 12:03
Konstantin10, во-первых определитесь о чем вы спрашиваете. Структуру БД или структуру модели вашего приложения.

Относительно вашего вопроса о модели есть два варианта.
1.
В классе User должна быть информация только о юзере (имя, меил и.т.д). Всякие связи не должны сидеть в этом классе. В идеале у вас вообще не должно быть аггрегативных связей в модели т.к это доставит вам проблем в будущем.

Таким образом у вас будет например класс ЗаписьКДоктору в котором будет поле Long doctorId которое будет связывать это сущность с доктором

2.
Наследование. В модели вы создаете классы доктор, админ, пациент, наследуете их от юзера и прописываете все связи в классах. Такой подход может быть более привычным, однако в будущем такой проект будет страдать от того что будет сильно грузить БД при более или менее высоком траффике.


Цитата Сообщение от Konstantin10 Посмотреть сообщение
Я хочу использовать в этом проекте технологии по нарастающей. То есть в версии 1.0 -Servlet API + JSP, JDBC, и так далее. Версия 1.1 или 2.0(там будет видно) - Уже вместо JDBC, буду использовать JPA или Hibernate. В версии 3.0 + Spring.
Это утопия. Вам будет очень сложно внедрить новую технологию на смену старой чтобы внедрение прошло чисто без всякого рода заплаток. При таком подходе к версии 3.0 вы получите монстра-гибрида или вам придется все переписывать с нуля с использованием современных технологий.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.07.2016, 12:03
Помогаю со студенческими работами здесь

Несколько сокетов в одном приложении
Знакомый говорил, что если приложение будет держать несколько сокетов, то это может вызвать проблемы. Так ли это?

Несколько сокетов в одном приложении
Доброе время суток! Нужна помощь, нужно сделать прогу которая сразу работает с 2-мя сокетами. Задача: слушать 1-ый сокет и...

Несколько форм в одном приложении
Проблема состоит в следующем: Приложение состоит из формы, при нажатии на кнопку должно открыться окно для ввода нескольких данных и...

Несколько Proxy в одном приложении
Здравствуйте! Помогите, пожалуйста, с одной проблемой. Недавно на сервере Mail.Ru Агента в целях борьбы со спамерами сделали жёсткое,...

Несколько форм OpenGL в одном приложении
Всем доброго времени суток)) Столкнулся с такой проблемой, в приложении несколько форм OpenGL... Дописав первую форму, перешел к работе со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru