From 7ad5c24644d98e4f263dfe8de8c68e93978bea27 Mon Sep 17 00:00:00 2001 From: Kudyaeva Date: Sat, 7 Dec 2024 16:01:32 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=201=20=D0=B8=D1=82=D0=BE=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 2labOTP.sql | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 2labOTP.sql diff --git a/2labOTP.sql b/2labOTP.sql new file mode 100644 index 0000000..1ee649d --- /dev/null +++ b/2labOTP.sql @@ -0,0 +1,49 @@ +-- Таблица Teacher +CREATE TABLE Teacher ( + ID SERIAL PRIMARY KEY, + Surname VARCHAR(255) NOT NULL, + Name VARCHAR(255) NOT NULL, + MiddleName VARCHAR(255) +); + +-- Таблица Group +CREATE TABLE "Group" ( + ID SERIAL PRIMARY KEY, + Name VARCHAR(255) NOT NULL, + Type INT NOT NULL +); + +-- Таблица Student +CREATE TABLE Student ( + ID SERIAL PRIMARY KEY, + Surname VARCHAR(255) NOT NULL, + Name VARCHAR(255) NOT NULL, + MiddleName VARCHAR(255), + GroupID INT NOT NULL REFERENCES "Group"(ID) ON DELETE CASCADE +); + +-- Таблица Discipline +CREATE TABLE Discipline ( + ID SERIAL PRIMARY KEY, + Name VARCHAR(255) NOT NULL, + Description TEXT NOT NULL, + Courses INT NOT NULL, + TeacherId INT NOT NULL REFERENCES Teacher(ID) ON DELETE CASCADE +); + + +-- Таблица Statement +CREATE TABLE Statement ( + ID SERIAL PRIMARY KEY, + TeacherId INT NOT NULL REFERENCES Teacher(ID) ON DELETE CASCADE, + DisciplineId INT NOT NULL REFERENCES Discipline(ID) ON DELETE CASCADE, + Date DATE NOT NULL +); + +-- Таблица StatementStudent (многие ко многим) +CREATE TABLE StatementStudent ( + ID SERIAL PRIMARY KEY, + StudentId INT NOT NULL REFERENCES Student(ID) ON DELETE CASCADE, + StatementId INT NOT NULL REFERENCES Statement(ID) ON DELETE CASCADE, + Mark INT NOT NULL +); \ No newline at end of file