PI06 i PI06-1. Docker definitions for MSSQL and Postgres. Data seeder/generator for countries and people. Entity Framework example with variants for Postgres and MSSQL

This commit is contained in:
Boris Milašinović
2026-04-19 16:49:07 +02:00
parent 44a663e170
commit 6f56d107a2
89 changed files with 7305 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
-- COUNTRIES
CREATE TABLE country (
code VARCHAR(3) PRIMARY KEY,
alpha3 CHAR(3) NOT NULL,
name VARCHAR(100) NOT NULL,
translations JSONB,
UNIQUE (name)
);
-- PERSONS
CREATE TABLE person (
id SERIAL PRIMARY KEY,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
first_name_transcription VARCHAR(100) NOT NULL,
last_name_transcription VARCHAR(100) NOT NULL,
address_line VARCHAR(200) NOT NULL,
postal_code VARCHAR(20) NOT NULL,
city VARCHAR(100) NOT NULL,
address_country VARCHAR(100) NOT NULL,
email VARCHAR(255) NOT NULL,
contact_phone VARCHAR(50) NOT NULL,
birth_date DATE NOT NULL,
document_number VARCHAR(50) NOT NULL,
country_code VARCHAR(3) NOT NULL,
FOREIGN KEY (country_code) REFERENCES country(code),
-- UNIQUE dokument po državi
UNIQUE (document_number, country_code)
);
-- SPORTS
CREATE TABLE sport (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
UNIQUE (name)
);
-- EVENTS
CREATE TABLE event (
id SERIAL PRIMARY KEY,
name VARCHAR(150) NOT NULL,
event_date DATE NOT NULL
);
-- REGISTRATIONS
CREATE TABLE registration (
id SERIAL PRIMARY KEY,
person_id INT NOT NULL,
sport_id INT NOT NULL,
event_id INT NOT NULL,
registered_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (person_id) REFERENCES person(id) ON DELETE CASCADE,
FOREIGN KEY (sport_id) REFERENCES sport(id) ON DELETE CASCADE,
FOREIGN KEY (event_id) REFERENCES event(id) ON DELETE CASCADE,
UNIQUE (person_id, sport_id, event_id)
);