Files
WhatIDo/db/init.sql
T

47 lines
1.1 KiB
SQL

CREATE TABLE IF NOT EXISTS groups (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL UNIQUE,
created_at TIMESTAMPTZ DEFAULT now()
);
CREATE TABLE IF NOT EXISTS students (
id SERIAL PRIMARY KEY,
name VARCHAR(150) NOT NULL UNIQUE,
group_id INT REFERENCES groups(id),
created_at TIMESTAMPTZ DEFAULT now()
);
CREATE TABLE IF NOT EXISTS entries (
id SERIAL PRIMARY KEY,
student_name VARCHAR(150) NOT NULL,
group_id INT NOT NULL REFERENCES groups(id),
description TEXT NOT NULL,
photo_path VARCHAR(255),
created_at TIMESTAMPTZ DEFAULT now()
);
CREATE TABLE IF NOT EXISTS settings (
key TEXT PRIMARY KEY,
value TEXT
);
INSERT INTO settings (key, value) VALUES ('spam_interval_min', '30')
ON CONFLICT (key) DO NOTHING;
CREATE TABLE IF NOT EXISTS share_links (
id SERIAL PRIMARY KEY,
token VARCHAR(40) UNIQUE NOT NULL,
name VARCHAR(200) NOT NULL,
group_id INT REFERENCES groups(id),
student_name VARCHAR(150),
date_from DATE,
date_to DATE,
created_at TIMESTAMPTZ DEFAULT now()
);
INSERT INTO groups (name) VALUES
('Beginner'),
('Intermediate'),
('Advanced')
ON CONFLICT (name) DO NOTHING;