46 lines
1.5 KiB
SQL
46 lines
1.5 KiB
SQL
create table accounts (
|
|
id serial not null primary key,
|
|
name varchar(255) not null,
|
|
email varchar(255) not null,
|
|
settings jsonb not null
|
|
-- настройки: replyto, cc, bcc, in_server, in_port, out_server, out_port, login, password
|
|
-- sent_folder, trash_folder, spam_folder, drafts_folder
|
|
-- in_server varchar(255) not null,
|
|
-- out_server varchar(255) not null,
|
|
-- reply_to
|
|
);
|
|
create unique index accounts_email on accounts (email);
|
|
|
|
create table folders (
|
|
id serial not null primary key,
|
|
uidvalidity int not null,
|
|
account_id int not null,
|
|
name varchar(255) not null,
|
|
unread_count int not null,
|
|
foreign key (account_id) references accounts (id) on delete cascade on update cascade
|
|
);
|
|
create unique index folders_name on folders (name);
|
|
|
|
create table messages (
|
|
id serial not null primary key,
|
|
folder_id int not null,
|
|
uid int not null,
|
|
messageid varchar(1000) not null,
|
|
inreplyto varchar(1000) not null,
|
|
subject text not null,
|
|
from_email varchar(255) not null,
|
|
from_name varchar(255) not null,
|
|
replyto_email varchar(255) not null,
|
|
replyto_name varchar(255) not null,
|
|
to_list text not null,
|
|
cc_list text not null,
|
|
bcc_list text not null,
|
|
headers text not null,
|
|
body text not null,
|
|
time timestamptz not null,
|
|
flags smallint not null,
|
|
foreign key (folder_id) references folders (id) on delete cascade on update cascade
|
|
);
|
|
create unique index messages_unique on messages (folder_id, uid);
|
|
create index messages_messageid on messages (messageid);
|