Предназначен для оценки и рекомендации фильмов между пользователями.
- Регистрация пользователей, получение информации о уже зарегестрированных пользователях, добавление других пользователей в список друзей
- Добавление, редактирование и удаление фильмов из базы данных
- Поиск фильмов по названию и режиссёру
- Добавление отзывов на фильмы от пользователей
- Просмотр ленты событий пользователей по их действиям на платформе
- Получение рекомендаций по фильмам на основе списка друзей
films
Содержит информацию о фильмах.
Таблица состоит из полей:
первичный ключ film_id — идентификатор фильма;
name — название фильма;
description — описание фильма;
releaseData — год выхода;
duration — продолжительность фильма в минутах;
rating — возрастной рейтинг;
film_genre
Сожердит информацию о жанрах фильмов
film_id — идентификатор фильма;
genre_id — идентификатор жанра;
genre
Содержит список жанров фильмов
genre_id — идентификатор жанра;
genre - название жанра;
likes
Сожержит список людей, которым понравился конкретный фильм
film_id — идентификатор фильма;
user_id — идентификатор пользователя;
users
user_id — идентификатор пользователя;
email - почтовый адрес пользователя;
login - login пользователя;
name - имя пользователя;
birthday - дата рождения;
friends
user_id — идентификатор пользователя;
friend_id — идентификатор друга пользователя;
status - статус дружбы: подтвержденная, неподтвержденная;
Список подтвержденных друзей пользователя с id = 1
SELECT friend_id
FROM friends
WHERE user_id = 1
AND status = 'confirmed';
10 фильмов с максимальным количеством лайков
SELECT f.name
FROM films AS f
RIGHT OUTER JOIN likes AS l ON f.film_id = l.film_id
GROUP BY l.film_id
ORDER BY SUM(user_id) DESC
LIMIT 10;
Список комедий
SELECT name
FROM films
WHERE film_id IN (SELECT fg.film_id
FROM film_genre AS fg
RIGHT OUTER JOIN genre AS g ON fg.genre_id = g.genre_id
WHERE g.genre = 'COMEDY');
Java 11, REST, Maven, Lombok, Junit5, Mockito, SQL, взаимодействие с БД через JDBC
