-
Notifications
You must be signed in to change notification settings - Fork 109
Description
sql
-- Таблица жанров
CREATE TABLE genres (
id INT PRIMARY KEY,
name VARCHAR(255)
);
-- Таблица артистов
CREATE TABLE artists (
name VARCHAR(255) PRIMARY KEY
);
-- Таблица связи артистов и жанров (многие-ко-многим)
CREATE TABLE artist_genre (
artists_id VARCHAR(255),
genris_id INT,
FOREIGN KEY (artists_id) REFERENCES artists(name),
FOREIGN KEY (genris_id) REFERENCES genres(id),
PRIMARY KEY (artists_id, genris_id)
);
-- Таблица альбомов
CREATE TABLE albums (
id INT PRIMARY KEY,
title VARCHAR(255),
year INT
);
-- Таблица связи альбомов и артистов (многие-ко-многим)
CREATE TABLE album_artist (
album_id INT,
atist_id VARCHAR(255),
FOREIGN KEY (album_id) REFERENCES albums(id),
FOREIGN KEY (atist_id) REFERENCES artists(name),
PRIMARY KEY (album_id, atist_id)
);
-- Таблица треков
CREATE TABLE tracks (
id INT PRIMARY KEY,
title VARCHAR(255),
dur VARCHAR(255),
album INT,
FOREIGN KEY (album) REFERENCES albums(id)
);
-- Таблица сборников
CREATE TABLE compilation (
id INT PRIMARY KEY,
title VARCHAR(255),
year INT
);
-- Таблица связи треков и сборников (многие-ко-многим)
CREATE TABLE track_compilation (
track_id INT,
compilation INT,
FOREIGN KEY (track_id) REFERENCES tracks(id),
FOREIGN KEY (compilation) REFERENCES compilation(id),
PRIMARY KEY (track_id, compilation)
);