· last year · Dec 16, 2023, 09:30 AM
1CREATE TABLE IF NOT EXISTS film (
2 id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
3 title VARCHAR(255) NOT NULL,
4 description VARCHAR(255),
5 release_date DATE NOT NULL,
6 duration INTEGER,
7 mpa_id INTEGER NOT NULL,
8 FOREIGN KEY (mpa_id) REFERENCES mpa(mpa_id)
9);
10
11-- Создание таблицы Genre
12CREATE TABLE IF NOT EXISTS genre (
13 genre_id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
14 name VARCHAR(255) NOT NULL
15);
16
17-- Создание таблицы Film_Genre (связь "многие ко многим" между Film и Genre)
18CREATE TABLE IF NOT EXISTS genre_film (
19 genre_film_id INTEGER GENERATED BY DEFAULT AS IDENTITY,
20 film_id INTEGER,
21 genre_id INTEGER,
22 PRIMARY KEY (genre_film_id),
23 FOREIGN KEY (film_id) REFERENCES film(id),
24 FOREIGN KEY (genre_id) REFERENCES genre(genre_id)
25);
26
27-- Создание таблицы Mpa
28CREATE TABLE IF NOT EXISTS mpa (
29 mpa_id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
30 name VARCHAR(255) NOT NULL
31);
32
33-- Создание таблицы User
34CREATE TABLE IF NOT EXISTS user (
35 id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
36 email VARCHAR(255) NOT NULL,
37 login VARCHAR(255) NOT NULL,
38 username VARCHAR(255),
39 birthday DATE NOT NULL
40);
41
42-- Создание таблицы Friends
43CREATE TABLE IF NOT EXISTS friends (
44 user_id INTEGER,
45 friend_id INTEGER,
46 PRIMARY KEY (user_id, friend_id),
47 FOREIGN KEY (user_id) REFERENCES user(id),
48 FOREIGN KEY (friend_id) REFERENCES user(id)
49);
50
51-- Создание таблицы Like_Film (связь "многие ко многим" между User и Film)
52CREATE TABLE IF NOT EXISTS like_film (
53 user_id INTEGER,
54 film_id INTEGER,
55 PRIMARY KEY (user_id, film_id),
56 FOREIGN KEY (user_id) REFERENCES user(id),
57 FOREIGN KEY (film_id) REFERENCES film(id)
58);
59
60-- Вставка данных в таблицу Genre
61INSERT INTO genre (name)
62VALUES ('Комедия'),
63 ('Драма'),
64 ('Мультфильм'),
65 ('Триллер'),
66 ('Документальный'),
67 ('Боевик');
68
69-- Вставка данных в таблицу Mpa
70INSERT INTO mpa (name)
71VALUES ('G'),
72 ('PG'),
73 ('PG-13'),
74 ('R'),
75 ('NC-17');