25 lines
1.3 KiB
PL/PgSQL
25 lines
1.3 KiB
PL/PgSQL
BEGIN;
|
|
|
|
CREATE SCHEMA IF NOT EXISTS training;
|
|
|
|
CREATE TABLE IF NOT EXISTS training.trainings (
|
|
id SERIAL PRIMARY KEY,
|
|
name varchar(255) NOT NULL,
|
|
days smallint NOT NULL,
|
|
published boolean NOT NULL DEFAULT FALSE,
|
|
retired boolean NOT NULL DEFAULT FALSE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS training.prices (
|
|
training_id SERIAL REFERENCES training.trainings(id),
|
|
amount NUMERIC(10,4) NOT NULL,
|
|
currency VARCHAR(3) NOT NULL,
|
|
CONSTRAINT positive_amount CHECK (amount >= 0),
|
|
CONSTRAINT allowed_currencies CHECK (currency IN ('USD', 'EUR', 'CZK')),
|
|
type VARCHAR(10) NOT NULL,
|
|
CHECK (type IN ('OPEN', 'CORPORATE')),
|
|
PRIMARY KEY (training_id, currency, type) -- composite primary key
|
|
);
|
|
|
|
COMMIT;
|
|
|