-
Возможности взаимодействия с фильмами:
- Создать
- Обновить имеющийся
- Вывод по идентификатору
- Вывод всех фильмов
- Cоставлять рейтинги
- Ставить лайки
- Получать рекомендации по фильмам для просмотра
- Вывод общих с другом фильмов с сортировкой по их популярности
- Вывод топ-N фильмов отсортированных по жанру и году
- Возвращать все фильмы режиссёра, отсортированных по количеству лайков
- Возвращать все фильмы режиссёра, отсортированных по годам.
- Поиск фильма по названию и по режиссеру
- Удалить фильм по идентификатору
-
Возможности по режиссерам:
- Создать
- Обновить
- Получить по идентификатору
- Получить список всех режиссеров
- Удалить режиссера по идентификатору
-
Возможности по отзывам:
- Добавить новый отзыв
- Редактировать и удалять уже имеющийся отзыв
- Получить отзыв по идентификатору
- Получить все отзывы по идентификатору фильма
-
Возможности пользователей:
- Создать
- Обновить имеющегося
- Вывод по идентификатору
- Вывод всех пользователей
- Добавить и удалить друга
- Получить список общих друзей
- Найти пользователей с максимальным количеством пересечения по лайкам
- Удалить пользователя по идентификатору
-
Лента событий - возможность просмотра последних событий на платформе:
- Добавление в друзья
- Удаление из друзей
- Лайки и отзывы, которые оставили друзья пользователя
-
Сохранение состояния данных после перезапуска
USERS
Первичный ключ: id
Хранит информацию о пользователях:
- id - Уникальный идентификатор пользователя
- name - Имя пользователя
- email - Электронная почта
- login - Логин пользователя
- birthday - Дата рождения
FRIENDSHIP
Первичный ключ: user_id, friend_id
Хранит информацию о дружбе между пользователями:
- user_id - Идентификатор пользователя
- friend_id - Идентификатор друга
- accepted - Дружба подтверждена
FILMS
Первичный ключ: id
Хранит информацию о фильмах:
- id - Уникальный идентификатор фильмов
- name - Название фильма
- description - Описание фильма
- release_date - Дата выхода
- duration - Длительность в минутах
- mpa - Рейтинг ассоциации MPA
LIKES
Первичный ключ: user_id, film_id
Хранит информацию о лайках, которые пользователи ставят фильмам
- user_id - Идентификатор пользователя
- film_id - Идентификатор фильма
FILM_GENRE
Первичный ключ: film_id, genre_id
Связывает фильмы с жанрами:
- film_id - Идентификатор фильма
- genre_id - Идентификатор жанра
GENRES
Первичный ключ: id
Хранит информацию о жанрах фильмов:
- id - Уникальный идентификатор жанров
- name - Название жанра
MPA
Первичный ключ: id
Хранит информацию о рейтингах MPA:
- id - Уникальный идентификатор
- name - Код рейтинга
- description - Описание рейтинга
DIRECTORS
Первичный ключ: id
Хранит информацию о режиссерах:
- id - Уникальный идентификатор режиссера
- name - Имя режиссера
FILM_DIRECTOR
Первичный ключ: film_id, director_id
Связывает фильмы с режиссерами:
- film_id - Идентификатор пользователя
- director_id - Идентификатор режиссера
REVIEWS
Первичный ключ: id
Хранит информацию об отзывах:
- id - Уникальный идентификатор отзыва
- user_id - Идентификатор пользователя
- film_id - Идентификатор фильма
- content - Содержание отзыва
- is_positive - Состояние отзыва
- useful - Рейтинг отзыва
REVIEW_USER
Первичный ключ: review_id, user_id
Связывает пользователя и отзывы:
- review_id - Идентификатор отзыва
- user_id - Идентификатор пользователя
- val - Оценочное значение
FEED
Первичный ключ: event_id
Хранит информацию о событиях и связывает с пользователем:
- event_id - Уникальный идентификатор событий
- timestamp - Время события
- user_id - Идентификатор пользователя
- even_type - Тип события
- operation - Описание события
- entity_id - Идентификатор сущности
