Project for Naumen Java course
- Есть возможность добавлять события в календарь.
- Система оповещает о наступлении событий.
- Пользователь (User)
Атрибуты:
- user_id (PK) — уникальный идентификатор пользователя
- name — имя пользователя
- email — электронная почта для получения уведомлений
- timezone — часовой пояс пользователя для правильного времени уведомлений
Связи: Один пользователь может иметь несколько событий (связь один-ко-многим с сущностью Event).
- Событие (Event)
Атрибуты:
- event_id (PK) — уникальный идентификатор события
- title — название события
- description — описание события
- event_time — дата и время события
Связи: Каждое событие принадлежит одному пользователю (связь многие-к-одному с сущностью User) и может иметь несколько напоминаний (связь один-ко-многим с сущностью Reminder).
- Напоминание (Reminder)
Атрибуты:
- reminder_id (PK) — уникальный идентификатор напоминания
- reminder_time — время отправки напоминания
- method — способ напоминания (например, email, push-уведомление)
Связи: Напоминание связано с конкретным событием (связь многие-к-одному с сущностью Event).
- Тип события (EventType)
Атрибуты:
- event_type_id (PK) — уникальный идентификатор типа события
- type_name — название типа (например, "Встреча", "Задача", "Годовщина")
- color — цвет для обозначения типа на календаре
Связи: Один тип события может относиться к нескольким событиям (связь один-ко-многим с сущностью Event).
- Повторение события (Recurrence)
Атрибуты:
- recurrence_id (PK) — уникальный идентификатор шаблона повторения
- frequency — частота повторения (ежедневно, еженедельно, ежемесячно)
- end_date — дата окончания повторения
Связи: Одно повторение может быть связано с несколькими событиями (связь один-ко-многим с сущностью Event).
ER-диаграмма
Основные связи:
User (1) <-> (M) Event
Event (1) <-> (M) Reminder
EventType (1) <-> (M) Event
Recurrence (1) <-> (M) Event