CREATE TABLE users ( id SERIAL PRIMARY KEY, email VARCHAR(255) UNIQUE, password CHAR(60), admin BOOLEAN DEFAULT FALSE ); CREATE TABLE topics ( id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(id), name VARCHAR(255) UNIQUE ); CREATE TABLE questions ( id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(id), topic_id INTEGER REFERENCES topics(id), question_text TEXT NOT NULL ); CREATE TABLE question_answer_options ( id SERIAL PRIMARY KEY, question_id INTEGER REFERENCES questions(id), option_text TEXT NOT NULL, is_correct BOOLEAN DEFAULT FALSE ); CREATE TABLE question_answers ( id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(id), question_id INTEGER REFERENCES questions(id), question_answer_option_id INTEGER REFERENCES question_answer_options(id) ); CREATE UNIQUE INDEX ON users((lower(email))); INSERT INTO users (email, password, admin) VALUES ('admin@admin.com','$2a$10$IML8QCf6xA.alRbW.CG5PuvYc3Qs94vJvoTwbsSehs8s515cUMuZa', true); INSERT INTO topics (user_id, name) VALUES ((SELECT id FROM users WHERE email = 'admin@admin.com'), 'Finnish language');