refactor: store mail flags in sparse relation table

This commit is contained in:
dreamhunter2333
2026-08-27 14:03:50 +08:00
parent 523f9b8af6
commit f12163490e
25 changed files with 750 additions and 179 deletions
+10 -1
View File
@@ -6,7 +6,6 @@ CREATE TABLE IF NOT EXISTS raw_mails (
raw TEXT,
raw_blob BLOB,
metadata TEXT,
flags INTEGER,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
@@ -16,6 +15,16 @@ CREATE INDEX IF NOT EXISTS idx_raw_mails_created_at ON raw_mails(created_at);
CREATE INDEX IF NOT EXISTS idx_raw_mails_message_id ON raw_mails(message_id);
CREATE TABLE IF NOT EXISTS mail_flags (
mail_id INTEGER NOT NULL,
address_id INTEGER NOT NULL,
flag INTEGER NOT NULL,
PRIMARY KEY (mail_id, flag)
) WITHOUT ROWID;
CREATE INDEX IF NOT EXISTS idx_mail_flags_address_flag_mail
ON mail_flags(address_id, flag, mail_id DESC);
CREATE TABLE IF NOT EXISTS address (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT UNIQUE,