rev |
line source |
bsw@1735
|
1 CREATE TABLE survey (
|
bsw@1735
|
2 id SERIAL4 PRIMARY KEY,
|
bsw@1735
|
3 title TEXT NOT NULL,
|
bsw@1735
|
4 text TEXT NOT NULL,
|
bsw@1735
|
5 finished_text TEXT NOT NULL,
|
bsw@1735
|
6 created TIMESTAMPTZ NOT NULL DEFAULT now(),
|
bsw@1735
|
7 open_from TIMESTAMPTZ NOT NULL,
|
bsw@1735
|
8 open_until TIMESTAMPTZ NOT NULL
|
bsw@1735
|
9 );
|
bsw@1735
|
10
|
bsw@1735
|
11 CREATE TABLE survey_question (
|
bsw@1735
|
12 id SERIAL4 PRIMARY KEY,
|
bsw@1735
|
13 survey_id INT4 NOT NULL REFERENCES survey(id),
|
bsw@1735
|
14 position INT4 NOT NULL,
|
bsw@1735
|
15 question TEXT NOT NULL,
|
bsw@1735
|
16 description TEXT,
|
bsw@1735
|
17 answer_type TEXT NOT NULL,
|
bsw@1735
|
18 answer_options json
|
bsw@1735
|
19 );
|
bsw@1735
|
20
|
bsw@1735
|
21 CREATE TABLE survey_answer_set (
|
bsw@1735
|
22 ident TEXT NOT NULL PRIMARY KEY,
|
bsw@1735
|
23 survey_id INT4 NOT NULL REFERENCES survey(id)
|
bsw@1735
|
24 );
|
bsw@1735
|
25
|
bsw@1735
|
26 CREATE TABLE survey_answer (
|
bsw@1735
|
27 id SERIAL8 PRIMARY KEY,
|
bsw@1735
|
28 survey_answer_set_ident TEXT NOT NULL REFERENCES survey_answer_set(ident) ON DELETE CASCADE,
|
bsw@1735
|
29 survey_question_id INT4 NOT NULL REFERENCES survey_question(id),
|
bsw@1735
|
30 answer TEXT NOT NULL
|
bsw@1735
|
31 );
|
bsw@1735
|
32
|
bsw@1735
|
33 CREATE TABLE survey_member (
|
bsw@1735
|
34 id SERIAL4 PRIMARY KEY,
|
bsw@1735
|
35 survey_id INT4 NOT NULL REFERENCES survey(id),
|
bsw@1735
|
36 member_id INT4 NOT NULL REFERENCES member(id),
|
bsw@1735
|
37 survey_answer_set_ident TEXT REFERENCES survey_answer_set(ident),
|
bsw@1735
|
38 started TIMESTAMPTZ DEFAULT now(),
|
bsw@1735
|
39 finished TIMESTAMPTZ,
|
bsw@1735
|
40 rejected TIMESTAMPTZ
|
bsw@1735
|
41 );
|
bsw@1735
|
42
|
bsw@1735
|
43 INSERT INTO survey (id, title, text, finished_text, open_from, open_until) VALUES (
|
bsw@1735
|
44 1,
|
bsw@1735
|
45 'Example survey',
|
bsw@1735
|
46 'This is just an example',
|
bsw@1735
|
47 '<strong>Done!</strong><br>You finished it. Thank you very much.',
|
bsw@1735
|
48 '2021-10-06 12:00',
|
bsw@1735
|
49 '2021-10-14 12:00'
|
bsw@1735
|
50 );
|
bsw@1735
|
51
|
bsw@1735
|
52 INSERT INTO survey_question (survey_id, position, question, answer_type, answer_options) VALUES
|
bsw@1735
|
53 (1, 1, 'What color do you like?', 'radio', '[ "Red", "Green", "Blue" ]'),
|
bsw@1735
|
54 (1, 2, 'What form do you like?', 'radio', '[ "Square", "Circle", "Hexagon" ]')
|
bsw@1735
|
55 ;
|
bsw@1735
|
56
|
bsw@1735
|
57
|