core/schema: add `account` table for linking list memberships together
parent
15ce1db5c0
commit
5a745083d6
|
@ -33,13 +33,24 @@ CREATE TABLE IF NOT EXISTS membership (
|
||||||
list INTEGER NOT NULL,
|
list INTEGER NOT NULL,
|
||||||
address TEXT NOT NULL,
|
address TEXT NOT NULL,
|
||||||
name TEXT,
|
name TEXT,
|
||||||
|
account INTEGER,
|
||||||
enabled BOOLEAN CHECK (enabled in (0, 1)) NOT NULL DEFAULT 1,
|
enabled BOOLEAN CHECK (enabled in (0, 1)) NOT NULL DEFAULT 1,
|
||||||
digest BOOLEAN CHECK (digest in (0, 1)) NOT NULL DEFAULT 0,
|
digest BOOLEAN CHECK (digest in (0, 1)) NOT NULL DEFAULT 0,
|
||||||
hide_address BOOLEAN CHECK (hide_address in (0, 1)) NOT NULL DEFAULT 0,
|
hide_address BOOLEAN CHECK (hide_address in (0, 1)) NOT NULL DEFAULT 0,
|
||||||
receive_duplicates BOOLEAN CHECK (receive_duplicates in (0, 1)) NOT NULL DEFAULT 1,
|
receive_duplicates BOOLEAN CHECK (receive_duplicates in (0, 1)) NOT NULL DEFAULT 1,
|
||||||
receive_own_posts BOOLEAN CHECK (receive_own_posts in (0, 1)) NOT NULL DEFAULT 0,
|
receive_own_posts BOOLEAN CHECK (receive_own_posts in (0, 1)) NOT NULL DEFAULT 0,
|
||||||
receive_confirmation BOOLEAN CHECK (receive_confirmation in (0, 1)) NOT NULL DEFAULT 1,
|
receive_confirmation BOOLEAN CHECK (receive_confirmation in (0, 1)) NOT NULL DEFAULT 1,
|
||||||
FOREIGN KEY (list) REFERENCES mailing_lists(pk) ON DELETE CASCADE
|
FOREIGN KEY (list) REFERENCES mailing_lists(pk) ON DELETE CASCADE,
|
||||||
|
FOREIGN KEY (account) REFERENCES account(pk) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS account (
|
||||||
|
pk INTEGER PRIMARY KEY NOT NULL,
|
||||||
|
name TEXT,
|
||||||
|
address TEXT NOT NULL UNIQUE,
|
||||||
|
public_key TEXT,
|
||||||
|
password TEXT NOT NULL,
|
||||||
|
enabled BOOLEAN CHECK (enabled in (0, 1)) NOT NULL DEFAULT 1
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS candidate_membership (
|
CREATE TABLE IF NOT EXISTS candidate_membership (
|
||||||
|
@ -71,5 +82,7 @@ CREATE TABLE IF NOT EXISTS post_event (
|
||||||
FOREIGN KEY (post) REFERENCES post(pk) ON DELETE CASCADE
|
FOREIGN KEY (post) REFERENCES post(pk) ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE INDEX IF NOT EXISTS post_listpk_idx ON post(list);
|
||||||
|
CREATE INDEX IF NOT EXISTS post_msgid_idx ON post(message_id);
|
||||||
CREATE INDEX IF NOT EXISTS mailing_lists_idx ON mailing_lists(id);
|
CREATE INDEX IF NOT EXISTS mailing_lists_idx ON mailing_lists(id);
|
||||||
CREATE INDEX IF NOT EXISTS membership_idx ON membership(address);
|
CREATE INDEX IF NOT EXISTS membership_idx ON membership(address);
|
||||||
|
|
|
@ -37,13 +37,24 @@ CREATE TABLE IF NOT EXISTS membership (
|
||||||
list INTEGER NOT NULL,
|
list INTEGER NOT NULL,
|
||||||
address TEXT NOT NULL,
|
address TEXT NOT NULL,
|
||||||
name TEXT,
|
name TEXT,
|
||||||
|
account INTEGER,
|
||||||
BOOLEAN_TYPE(enabled) DEFAULT BOOLEAN_TRUE(),
|
BOOLEAN_TYPE(enabled) DEFAULT BOOLEAN_TRUE(),
|
||||||
BOOLEAN_TYPE(digest) DEFAULT BOOLEAN_FALSE(),
|
BOOLEAN_TYPE(digest) DEFAULT BOOLEAN_FALSE(),
|
||||||
BOOLEAN_TYPE(hide_address) DEFAULT BOOLEAN_FALSE(),
|
BOOLEAN_TYPE(hide_address) DEFAULT BOOLEAN_FALSE(),
|
||||||
BOOLEAN_TYPE(receive_duplicates) DEFAULT BOOLEAN_TRUE(),
|
BOOLEAN_TYPE(receive_duplicates) DEFAULT BOOLEAN_TRUE(),
|
||||||
BOOLEAN_TYPE(receive_own_posts) DEFAULT BOOLEAN_FALSE(),
|
BOOLEAN_TYPE(receive_own_posts) DEFAULT BOOLEAN_FALSE(),
|
||||||
BOOLEAN_TYPE(receive_confirmation) DEFAULT BOOLEAN_TRUE(),
|
BOOLEAN_TYPE(receive_confirmation) DEFAULT BOOLEAN_TRUE(),
|
||||||
FOREIGN KEY (list) REFERENCES mailing_lists(pk) ON DELETE CASCADE
|
FOREIGN KEY (list) REFERENCES mailing_lists(pk) ON DELETE CASCADE,
|
||||||
|
FOREIGN KEY (account) REFERENCES account(pk) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS account (
|
||||||
|
pk INTEGER PRIMARY KEY NOT NULL,
|
||||||
|
name TEXT,
|
||||||
|
address TEXT NOT NULL UNIQUE,
|
||||||
|
public_key TEXT,
|
||||||
|
password TEXT NOT NULL,
|
||||||
|
BOOLEAN_TYPE(enabled) DEFAULT BOOLEAN_TRUE()
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS candidate_membership (
|
CREATE TABLE IF NOT EXISTS candidate_membership (
|
||||||
|
@ -75,5 +86,7 @@ CREATE TABLE IF NOT EXISTS post_event (
|
||||||
FOREIGN KEY (post) REFERENCES post(pk) ON DELETE CASCADE
|
FOREIGN KEY (post) REFERENCES post(pk) ON DELETE CASCADE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE INDEX IF NOT EXISTS post_listpk_idx ON post(list);
|
||||||
|
CREATE INDEX IF NOT EXISTS post_msgid_idx ON post(message_id);
|
||||||
CREATE INDEX IF NOT EXISTS mailing_lists_idx ON mailing_lists(id);
|
CREATE INDEX IF NOT EXISTS mailing_lists_idx ON mailing_lists(id);
|
||||||
CREATE INDEX IF NOT EXISTS membership_idx ON membership(address);
|
CREATE INDEX IF NOT EXISTS membership_idx ON membership(address);
|
||||||
|
|
Loading…
Reference in New Issue