--- trunk/schema.sql 2005/05/16 21:54:41 30 +++ trunk/schema.sql 2005/05/24 14:02:05 47 @@ -1,7 +1,7 @@ create table users ( id serial, email text not null, - full_name text not null, + name text default '', date timestamp not null default now(), active boolean not null default true, bounce_count int not null default 0, @@ -14,6 +14,7 @@ create table lists ( id serial, name text not null, + from_addr text not null default '', email text not null, bounce_limit int not null default 3, date timestamp not null default now(), @@ -48,26 +49,24 @@ create table sent ( message_id int not null references messages(id) on update cascade on delete cascade, user_id int not null references users(id) on update cascade on delete cascade, + hash text not null, date timestamp not null default now(), primary key(message_id, user_id) ); +create unique index sent_hash_ind on sent(hash); + create table received ( id serial, - user_id int not null references users(id) on update cascade on delete cascade, + user_id int references users(id), + list_id int not null references lists(id), + message_id int references messages(id), message text not null, bounced boolean not null default false, date timestamp not null default now(), primary key (id) ); +create index received_user_id_int on received(user_id); +create index received_list_id_int on received(list_id); -insert into users (email, full_name) values ('dpavlin@rot13.org', 'DbP'); -insert into users (email, full_name) values ('dpavlin@gmail.com', 'DbP'); -insert into users (email, full_name) values ('xxx_doesnt_exist_xxx@gmail.com', 'fake'); - -insert into lists (name, email) values ('Just me','my-alter-ego@rot13.org'); -insert into lists (name, email) values ('All users','announce@example.com'); - -insert into user_list (user_id, list_id) select users.id,1 from users limit 1; -insert into user_list (user_id, list_id) select users.id,2 from users;