Skip to content

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

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, компиляция)
);

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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