diff options
author | Runxi Yu <me@runxiyu.org> | 2025-01-13 08:48:34 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-01-13 08:48:34 +0800 |
commit | 3965c222ec138163346a4e9e596f3ac15b3ead60 (patch) | |
tree | a531b63d2cf08ef6cab89518a86f4bca6395426a /schema.sql | |
parent | Remove routes from example config (diff) | |
download | maild-3965c222ec138163346a4e9e596f3ac15b3ead60.tar.gz maild-3965c222ec138163346a4e9e596f3ac15b3ead60.tar.zst maild-3965c222ec138163346a4e9e596f3ac15b3ead60.zip |
Add addresses
Diffstat (limited to 'schema.sql')
-rw-r--r-- | schema.sql | 22 |
1 files changed, 14 insertions, 8 deletions
@@ -1,20 +1,26 @@ CREATE TABLE accounts ( id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, - username TEXT, - password TEXT + username TEXT NOT NULL, + password TEXT -- NULL for locked accounts ); CREATE TABLE mailboxes ( id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, - account INTEGER NOT NULL, - FOREIGN KEY(account) REFERENCES accounts(id), - name TEXT, - UNIQUE(account, name) + 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 INTEGER NOT NULL, - FOREIGN KEY(mailbox) REFERENCES mailboxes(id), + mailbox_id INTEGER NOT NULL, + FOREIGN KEY(mailbox_id) REFERENCES mailboxes(id), data bytea ); |