Приложение Filmorate по оценке фильмов.
В приложение Filmorate добавлены возможности лайкать фильмы, получать список лучших фильмов, добавлять друг друга в друзья.
Схема БД в виде ER диаграммы представлена ссылка
Таблица Users
- модель пользователяТаблица Friendship
- инфо о дружбе между двумя пользователями. Если статус не подвержден: столбец status - false, подвержден - trueТаблица Films
- модель фильмаТаблица Likes
- инфо о пользователях поставивших лайк фильмуТаблица Film_Genre
- инфо о жанрах фильмаТаблица Genre
- список жанровТаблица Rating_MPA
- инфо о возрастном ограничении для фильма
CREATE TABLE Users (
USER_ID INT,
EMAIL varchar,
LOGIN varchar,
NAME varchar,
BIRTHDAY date
);
INSERT INTO Users (USER_ID, EMAIL, LOGIN, NAME, BIRTHDAY) VALUES (1, '[email protected]', 'Olik13', 'Olga', '1999-04-24');
INSERT INTO Users (USER_ID, EMAIL, LOGIN, NAME, BIRTHDAY) VALUES (2, '[email protected]', 'Daniil', 'Danya', '2003-04-22');
CREATE TABLE Films (
FILM_ID INT,
NAME varchar,
DESCRIPTION varchar,
RELEASE_Date date,
DURATION INT,
RAITING_ID INT
);
INSERT INTO Films (FILM_ID, NAME, DESCRIPTION, RELEASE_Date, DURATION, RAITING_ID) VALUES (1, 'Терминатор', 'Фильм о судном дне', '1999-04-24', 2, 9);
INSERT INTO Films (FILM_ID, NAME, DESCRIPTION, RELEASE_Date, DURATION, RAITING_ID) VALUES (2, 'Терминатор 2', 'Фильм о судном дне 2', '2000-04-24', 2, 9);
CREATE TABLE Likes (
FILM_ID INT,
USER_ID INT
);
INSERT INTO Likes (FILM_ID, USER_ID) VALUES (1, 1);
INSERT INTO Likes (FILM_ID, USER_ID) VALUES (1, 2);
Примеры запросов для основных операций приложения:
- Получение информации о пользователе по ID:
SELECT *
FROM Users
WHERE USER_ID = 1
- Получение списка 5 пользователей по убыванию в лексикографическом порядк
SELECT NAME
FROM Users
ORDER BY NAME DESC
LIMIT 5;
- Получение информации о фильме по ID:
SELECT *
FROM Films
WHERE FILM_ID = 1
- Выборка 10 новых фильмов по году выпуска:
SELECT NAME,
EXTRACT(YEAR FROM CAST(RELEASE_Date AS date))
FROM Films
ORDER BY RELEASE_Date DESC
LIMIT 10;