Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions dumps/students/s_09/church.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
DROP TABLE IF EXISTS persons CASCADE;
DROP TABLE IF EXISTS roles CASCADE;
DROP TABLE IF EXISTS services CASCADE;
DROP TABLE IF EXISTS roles_services CASCADE;
DROP TABLE IF EXISTS church_goods CASCADE;
DROP TABLE IF EXISTS persons_church_goods CASCADE;

CREATE TABLE persons(
id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
faith VARCHAR(70) NOT NULL
)

CREATE TABLE roles(
id SERIAL PRIMARY KEY,
name VARCHAR(40) NOT NULL,
born_year SMALLINT NOT NULL CONSTRAINT positive_age CHECK (born_year > 0) and (born_year < 101)
)

CREATE TABLE services(
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price NUMERIC NOT NULL positive_num CHECK (price > 0),
due_at TIMESTAMP WITH TIME ZONE,
desciption TEXT
)

CREATE TABLE roles_services(
id SERIAL PRIMARY KEY,
roles_id INT REFERENCES roles (id),
services_id INT REFERENCES services (id)
)

CREATE TABLE church_goods(
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price NUMERIC NOT NULL positive_num CHECK (price > 0),
desciption TEXT
)

CREATE TABLE persons_church_goods(
id SERIAL PRIMARY KEY,
persons_id INT REFERENCES persons (id),
church_goods_id INT REFERENCES church_goods (id)
)