/
urpdvk
/
SQL_database
Обзор
Документация
Войти
/
urpdvk
/
SQL_database
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
music_service_create.sql
68 строк
2 KB
urpdvk
Продвинтая выборка
22 июн 2026, 20:44
22 июн 2026, 20:44
94a0dd0
Код
Авторство
О чём код?
-- ============================================================ -- Файл 1 из 3: CREATE-запросы (схема музыкального сервиса) -- PostgreSQL -- ============================================================ DROP TABLE IF EXISTS compilation_track CASCADE; DROP TABLE IF EXISTS artist_album CASCADE; DROP TABLE IF EXISTS artist_genre CASCADE; DROP TABLE IF EXISTS track CASCADE; DROP TABLE IF EXISTS compilation CASCADE; DROP TABLE IF EXISTS album CASCADE; DROP TABLE IF EXISTS artist CASCADE; DROP TABLE IF EXISTS genre CASCADE; -- Жанр CREATE TABLE genre ( id SERIAL PRIMARY KEY, name VARCHAR(60) NOT NULL UNIQUE ); -- Исполнитель CREATE TABLE artist ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL ); -- Альбом CREATE TABLE album ( id SERIAL PRIMARY KEY, title VARCHAR(100) NOT NULL, release_year SMALLINT NOT NULL ); -- Трек (принадлежит одному альбому, 1:N) CREATE TABLE track ( id SERIAL PRIMARY KEY, title VARCHAR(100) NOT NULL, duration INTEGER NOT NULL, -- длительность в секундах album_id INTEGER NOT NULL REFERENCES album(id) ); -- Сборник CREATE TABLE compilation ( id SERIAL PRIMARY KEY, title VARCHAR(100) NOT NULL, release_year SMALLINT NOT NULL ); -- M:N исполнитель — жанр CREATE TABLE artist_genre ( artist_id INTEGER NOT NULL REFERENCES artist(id), genre_id INTEGER NOT NULL REFERENCES genre(id), PRIMARY KEY (artist_id, genre_id) ); -- M:N исполнитель — альбом CREATE TABLE artist_album ( artist_id INTEGER NOT NULL REFERENCES artist(id), album_id INTEGER NOT NULL REFERENCES album(id), PRIMARY KEY (artist_id, album_id) ); -- M:N сборник — трек CREATE TABLE compilation_track ( compilation_id INTEGER NOT NULL REFERENCES compilation(id), track_id INTEGER NOT NULL REFERENCES track(id), PRIMARY KEY (compilation_id, track_id) );