From ddbf3ae0ae530954b0e105e99819c85cfe4de17c Mon Sep 17 00:00:00 2001 From: morkt Date: Sun, 18 Oct 2015 12:32:05 +0400 Subject: discussion board polls. --- util/sql/schema.sql | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'util') diff --git a/util/sql/schema.sql b/util/sql/schema.sql index 59240ea9..8dd960be 100644 --- a/util/sql/schema.sql +++ b/util/sql/schema.sql @@ -528,3 +528,27 @@ CREATE TABLE wlists ( added timestamptz NOT NULL DEFAULT NOW(), PRIMARY KEY(uid, vid) ); + +CREATE TABLE polls ( + id SERIAL PRIMARY KEY, + tid integer UNIQUE NOT NULL DEFAULT 0, -- references threads + question varchar(100) NOT NULL DEFAULT '', + max_options smallint NOT NULL DEFAULT 1, + preview boolean NOT NULL DEFAULT FALSE, + recast boolean NOT NULL DEFAULT FALSE +); + +CREATE TABLE polls_options ( + id SERIAL PRIMARY KEY, + pid integer NOT NULL REFERENCES polls (id) ON DELETE CASCADE, + option varchar(100) NOT NULL +); + +CREATE TABLE polls_votes ( + pid integer NOT NULL REFERENCES polls (id) ON DELETE CASCADE, + uid integer NOT NULL REFERENCES users (id) ON DELETE CASCADE, + optid integer NOT NULL REFERENCES polls_options (id) ON DELETE CASCADE, + PRIMARY KEY (pid, uid, optid) +); + +ALTER TABLE polls ADD FOREIGN KEY (tid) REFERENCES threads (id) ON DELETE CASCADE; -- cgit v1.2.3