Skip to content

Задание 1 Продолжаем работать со своей базой данных. В этом задании заполняем базы данных из домашнего задания к занятию "Работа с SQL. Создание БД". В ней должно быть: #16

@anton216216

Description

@anton216216

-- Таблица жанров
CREATE TABLE жанры (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL
);

-- Таблица артистов
CREATE TABLE Artists (
имя VARCHAR(255) PRIMARY KEY,

);

-- Таблица связи артистов и жанров (многие-ко-многим)
CREATE TABLE Artist_genre (
Artist_id VARCHAR(255),
genris_id INT,
FOREIGN KEY (Artist_id) REFERENCES Artists(имя) ON DELETE CASCADE,
FOREIGN KEY (genris_id) REFERENCES жанры(id) ON DELETE CASCADE,
PRIMARY KEY (Artist_id, genris_id)
);

-- Таблица альбомов
CREATE TABLE albums (
id SERIAL PRIMARY KEY,
название VARCHAR(255) NOT NULL,
год INT NOT NULL CHECK (год > 1900)
);

-- Таблица связи альбомов и артистов (многие-ко-многим)
CREATE TABLE album_artist (
album_id INT,
atist_id VARCHAR(255), -- опечатка, но оставляем как есть
FOREIGN KEY (album_id) REFERENCES albums(id) ON DELETE CASCADE,
FOREIGN KEY (atist_id) REFERENCES Artists(имя) ON DELETE CASCADE,
PRIMARY KEY (album_id, atist_id)
);

-- Таблица треков
CREATE TABLE треков (
id SERIAL PRIMARY KEY,
название VARCHAR(255) NOT NULL,
длительность INT NOT NULL, -- меняем VARCHAR на INT (в секундах)
альбом INT NOT NULL,
FOREIGN KEY (альбом) REFERENCES albums(id) ON DELETE CASCADE
);

-- Таблица сборников
CREATE TABLE компиляция (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
год INT NOT NULL CHECK (год > 1900)
);

-- Таблица связи треков и сборников (многие-ко-многим)
CREATE TABLE track_compilation (
track_id INT,
компиляция INT,
FOREIGN KEY (track_id) REFERENCES треков(id) ON DELETE CASCADE,
FOREIGN KEY (компиляция) REFERENCES компиляция(id) ON DELETE CASCADE,
PRIMARY KEY (track_id, компиляция)
);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions