23 lines
814 B
PL/PgSQL
23 lines
814 B
PL/PgSQL
BEGIN;
|
|
|
|
CREATE TABLE form_responses (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
form_id UUID NOT NULL REFERENCES forms(id) ON DELETE RESTRICT,
|
|
user_id UUID REFERENCES users(id) ON DELETE SET NULL,
|
|
submitted_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE response_answers (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
response_id UUID NOT NULL REFERENCES form_responses(id) ON DELETE CASCADE,
|
|
question_id UUID NOT NULL,
|
|
form_id UUID NOT NULL,
|
|
answer_text TEXT,
|
|
FOREIGN KEY (form_id, question_id) REFERENCES questions(form_id, id) ON DELETE CASCADE
|
|
);
|
|
|
|
CREATE INDEX idx_form_responses_form_id ON form_responses(form_id);
|
|
CREATE INDEX idx_response_answers_response_id ON response_answers(response_id);
|
|
|
|
COMMIT;
|