blob: 26f366c902569580f60747cd86ed99a16b8ca03f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
CREATE TABLE accounts (
id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
username TEXT NOT NULL,
password TEXT -- NULL for locked accounts
);
CREATE TABLE mailboxes (
id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
account_id INTEGER NOT NULL,
FOREIGN KEY(account_id) REFERENCES accounts(id),
name TEXT NOT NULL,
UNIQUE(account_id, name)
);
CREATE TABLE addresses (
address TEXT PRIMARY KEY NOT NULL,
mailbox_id INTEGER NOT NULL,
FOREIGN KEY(mailbox_id) REFERENCES mailboxes(id)
);
CREATE TABLE mail (
id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
mailbox_id INTEGER NOT NULL,
FOREIGN KEY(mailbox_id) REFERENCES mailboxes(id),
data bytea
);
|