bsw@1735: CREATE TABLE survey ( bsw@1735: id SERIAL4 PRIMARY KEY, bsw@1735: title TEXT NOT NULL, bsw@1735: text TEXT NOT NULL, bsw@1746: finished_title TEXT NOT NULL, bsw@1735: finished_text TEXT NOT NULL, bsw@1735: created TIMESTAMPTZ NOT NULL DEFAULT now(), bsw@1735: open_from TIMESTAMPTZ NOT NULL, bsw@1735: open_until TIMESTAMPTZ NOT NULL bsw@1735: ); bsw@1735: bsw@1735: CREATE TABLE survey_question ( bsw@1735: id SERIAL4 PRIMARY KEY, bsw@1735: survey_id INT4 NOT NULL REFERENCES survey(id), bsw@1735: position INT4 NOT NULL, bsw@1735: question TEXT NOT NULL, bsw@1735: description TEXT, bsw@1735: answer_type TEXT NOT NULL, bsw@1735: answer_options json bsw@1735: ); bsw@1735: bsw@1735: CREATE TABLE survey_answer_set ( bsw@1735: ident TEXT NOT NULL PRIMARY KEY, bsw@1735: survey_id INT4 NOT NULL REFERENCES survey(id) bsw@1735: ); bsw@1735: bsw@1735: CREATE TABLE survey_answer ( bsw@1735: id SERIAL8 PRIMARY KEY, bsw@1735: survey_answer_set_ident TEXT NOT NULL REFERENCES survey_answer_set(ident) ON DELETE CASCADE, bsw@1735: survey_question_id INT4 NOT NULL REFERENCES survey_question(id), bsw@1735: answer TEXT NOT NULL bsw@1735: ); bsw@1735: bsw@1735: CREATE TABLE survey_member ( bsw@1735: id SERIAL4 PRIMARY KEY, bsw@1735: survey_id INT4 NOT NULL REFERENCES survey(id), bsw@1735: member_id INT4 NOT NULL REFERENCES member(id), bsw@1735: survey_answer_set_ident TEXT REFERENCES survey_answer_set(ident), bsw@1735: started TIMESTAMPTZ DEFAULT now(), bsw@1735: finished TIMESTAMPTZ, bsw@1735: rejected TIMESTAMPTZ bsw@1735: ); bsw@1735: bsw@1735: INSERT INTO survey (id, title, text, finished_text, open_from, open_until) VALUES ( bsw@1735: 1, bsw@1735: 'Example survey', bsw@1735: 'This is just an example', bsw@1735: 'Done!
You finished it. Thank you very much.', bsw@1735: '2021-10-06 12:00', bsw@1735: '2021-10-14 12:00' bsw@1735: ); bsw@1735: bsw@1735: INSERT INTO survey_question (survey_id, position, question, answer_type, answer_options) VALUES bsw@1735: (1, 1, 'What color do you like?', 'radio', '[ "Red", "Green", "Blue" ]'), bsw@1735: (1, 2, 'What form do you like?', 'radio', '[ "Square", "Circle", "Hexagon" ]') bsw@1735: ; bsw@1735: bsw@1735: