Norwich
@Norwich
Web-developer

Реализация таблиц Студент и Преподаватель?

Я пишу програмулину на Spring MVC с использованием JDBCTemplate, которая в будущем будет навешана большим количеством функционала. В ней есть два вида активных пользователей(Админ не в счет сейчас): Студент и Преподаватель. У каждого свой набор полей, есть лишь немного одинаковых (такие ка ФИО например). И встал вопрос, как действовать дальше: либо пилить отдельные модели, для каждой реализовывать эндпоинты на авторизацию и т.д., либо запилить одну большую, с возможностью оставлять поля пустыми (на фронте давать возможность преподавателю заполнять только свои поля, а студенту свои) и раскидать функционал по Ролям. Но второй вариант влечет за собой невероятное кол-во костылей. Подскажите, как правильно поступить?
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 3
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
1 - Общая таблица Пользователи
2 - Преподаватели
3 - Студенты

https://sqlize.online/sql/psql11/4cb83c0ff81975c35...
Ответ написан
Комментировать
azerphoenix
@azerphoenix
Java Software Engineer
Добрый день!
Итак,
Вам нужны 3 модели:
1) User (содержит общие поля) - @MappedSuperclass
2) Student - @Entity
3) Teacher - @Entity
Подробнее - https://www.baeldung.com/hibernate-inheritance
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
EAV модель
Еntity - сущности/роли: Админ, Студент и Преподаватель
Attributes - специальные атрибуты/свойства: Занятия, Зачеты (общие поля (ФИО, Пароль) добавляются в таблицу пользователей)
ЕntityAttributes - связь M:M атрибутов и сущностей
Values - уникальные значения атрибутов
AttributeValues - связь M:M значений и атрибутов
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы