liquid_feedback_frontend
diff db/survey.sql @ 1735:5a8a09119865
Added survey feature
author | bsw |
---|---|
date | Fri Oct 08 00:09:23 2021 +0200 (2021-10-08) |
parents | |
children | c7dbb36ce1e0 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/db/survey.sql Fri Oct 08 00:09:23 2021 +0200 1.3 @@ -0,0 +1,57 @@ 1.4 +CREATE TABLE survey ( 1.5 + id SERIAL4 PRIMARY KEY, 1.6 + title TEXT NOT NULL, 1.7 + text TEXT NOT NULL, 1.8 + finished_text TEXT NOT NULL, 1.9 + created TIMESTAMPTZ NOT NULL DEFAULT now(), 1.10 + open_from TIMESTAMPTZ NOT NULL, 1.11 + open_until TIMESTAMPTZ NOT NULL 1.12 +); 1.13 + 1.14 +CREATE TABLE survey_question ( 1.15 + id SERIAL4 PRIMARY KEY, 1.16 + survey_id INT4 NOT NULL REFERENCES survey(id), 1.17 + position INT4 NOT NULL, 1.18 + question TEXT NOT NULL, 1.19 + description TEXT, 1.20 + answer_type TEXT NOT NULL, 1.21 + answer_options json 1.22 +); 1.23 + 1.24 +CREATE TABLE survey_answer_set ( 1.25 + ident TEXT NOT NULL PRIMARY KEY, 1.26 + survey_id INT4 NOT NULL REFERENCES survey(id) 1.27 +); 1.28 + 1.29 +CREATE TABLE survey_answer ( 1.30 + id SERIAL8 PRIMARY KEY, 1.31 + survey_answer_set_ident TEXT NOT NULL REFERENCES survey_answer_set(ident) ON DELETE CASCADE, 1.32 + survey_question_id INT4 NOT NULL REFERENCES survey_question(id), 1.33 + answer TEXT NOT NULL 1.34 +); 1.35 + 1.36 +CREATE TABLE survey_member ( 1.37 + id SERIAL4 PRIMARY KEY, 1.38 + survey_id INT4 NOT NULL REFERENCES survey(id), 1.39 + member_id INT4 NOT NULL REFERENCES member(id), 1.40 + survey_answer_set_ident TEXT REFERENCES survey_answer_set(ident), 1.41 + started TIMESTAMPTZ DEFAULT now(), 1.42 + finished TIMESTAMPTZ, 1.43 + rejected TIMESTAMPTZ 1.44 +); 1.45 + 1.46 +INSERT INTO survey (id, title, text, finished_text, open_from, open_until) VALUES ( 1.47 + 1, 1.48 + 'Example survey', 1.49 + 'This is just an example', 1.50 + '<strong>Done!</strong><br>You finished it. Thank you very much.', 1.51 + '2021-10-06 12:00', 1.52 + '2021-10-14 12:00' 1.53 +); 1.54 + 1.55 +INSERT INTO survey_question (survey_id, position, question, answer_type, answer_options) VALUES 1.56 + (1, 1, 'What color do you like?', 'radio', '[ "Red", "Green", "Blue" ]'), 1.57 + (1, 2, 'What form do you like?', 'radio', '[ "Square", "Circle", "Hexagon" ]') 1.58 +; 1.59 + 1.60 +