Все базы данных в одной репе

This commit is contained in:
2024-10-29 08:23:11 +03:00
parent 71ef9e72b6
commit be4aeb5975
19 changed files with 1093 additions and 0 deletions

136
create_tables.sql Normal file
View File

@@ -0,0 +1,136 @@
CREATE TABLE organizer (
id_organizer SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
logo VARCHAR(1024)
);
CREATE TABLE judge (
id_judge SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
surname VARCHAR(100) NOT NULL,
patronymic VARCHAR(100) NOT NULL,
category VARCHAR(100) NOT NULL,
region VARCHAR(100),
federation VARCHAR(100)
);
CREATE TABLE sportsman (
id_sportsman SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
surname VARCHAR(100) NOT NULL,
patronymic VARCHAR(100),
gender VARCHAR(10) NOT NULL,
birthday DATE,
region VARCHAR(100),
club VARCHAR(100),
federation VARCHAR(100),
category VARCHAR(100)
);
CREATE TABLE division (
id_division SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
gender VARCHAR(10) NOT NULL,
bow_type VARCHAR(100) NOT NULL,
distance SMALLINT NOT NULL,
msmk SMALLINT NOT NULL,
ms SMALLINT NOT NULL,
kms SMALLINT NOT NULL,
category_1 SMALLINT NOT NULL,
category_2 SMALLINT NOT NULL,
category_3 SMALLINT NOT NULL
);
CREATE TABLE competition (
id_competition SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
address VARCHAR(100),
logo VARCHAR(1024),
start_date DATE,
end_date DATE,
id_organizer INTEGER,
FOREIGN KEY (id_organizer) REFERENCES organizer(id_organizer)
);
CREATE TABLE division_in_competition (
id_division_in_competition SERIAL PRIMARY KEY,
id_division INTEGER NOT NULL,
id_competition INTEGER NOT NULL,
FOREIGN KEY (id_division) REFERENCES division(id_division),
FOREIGN KEY (id_competition) REFERENCES competition(id_competition)
);
CREATE TABLE protocol (
id_protocol SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
date DATE NOT NULL,
file VARCHAR(1024) NOT NULL,
id_competition INTEGER NOT NULL,
FOREIGN KEY (id_competition) REFERENCES competition(id_competition)
);
CREATE TABLE participant_request (
id_participant_request SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
surname VARCHAR(100) NOT NULL,
patronymic VARCHAR(100),
gender VARCHAR(10) NOT NULL,
birthday DATE,
region VARCHAR(100),
club VARCHAR(100),
federation VARCHAR(100),
category VARCHAR(100),
is_registered BOOLEAN NOT NULL,
id_competition INTEGER NOT NULL,
id_sportsman INTEGER NOT NULL,
id_division INTEGER NOT NULL,
FOREIGN KEY (id_competition) REFERENCES competition(id_competition),
FOREIGN KEY (id_sportsman) REFERENCES sportsman(id_sportsman),
FOREIGN KEY (id_division) REFERENCES division(id_division)
);
CREATE TABLE competition_stage (
id_competition_stage SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
count_of_series SMALLINT NOT NULL
);
CREATE TABLE result_in_stage (
id_result_in_stage SERIAL PRIMARY KEY,
score SMALLINT NOT NULL,
shield_index SMALLINT NOT NULL,
target_index CHAR(1) NOT NULL,
id_participant_request INTEGER NOT NULL,
id_division INTEGER NOT NULL,
id_competition_stage INTEGER NOT NULL,
FOREIGN KEY (id_participant_request) REFERENCES participant_request(id_participant_request),
FOREIGN KEY (id_division) REFERENCES division(id_division),
FOREIGN KEY (id_competition_stage) REFERENCES competition_stage(id_competition_stage)
);
CREATE TABLE judge_request (
id_judge_request SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
surname VARCHAR(100) NOT NULL,
patronymic VARCHAR(100) NOT NULL,
category VARCHAR(100) NOT NULL,
region VARCHAR(100),
federation VARCHAR(100),
is_registered BOOLEAN NOT NULL,
id_competition INTEGER NOT NULL,
id_judge INTEGER NOT NULL,
FOREIGN KEY (id_competition) REFERENCES competition(id_competition),
FOREIGN KEY (id_judge) REFERENCES judge(id_judge)
);
CREATE TABLE shot_series (
id_shot_series SERIAL PRIMARY KEY,
score INTEGER NOT NULL,
photo VARCHAR(1024) NOT NULL,
id_participant_request INTEGER NOT NULL,
id_result_in_stage INTEGER NOT NULL,
id_judge_request INTEGER NOT NULL,
FOREIGN KEY (id_participant_request) REFERENCES participant_request(id_participant_request),
FOREIGN KEY (id_result_in_stage) REFERENCES result_in_stage(id_result_in_stage),
FOREIGN KEY (id_judge_request) REFERENCES judge_request(id_judge_request)
);