/[notice-sender]/trunk/schema.sql
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/schema.sql

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1 by dpavlin, Fri May 13 21:17:58 2005 UTC revision 47 by dpavlin, Tue May 24 14:02:05 2005 UTC
# Line 1  Line 1 
1  create table users (  create table users (
2          id      serial,          id      serial,
3          email   text not null,          email   text not null,
4          full_name text not null,          name    text default '',
5          date    timestamp default now(),          date    timestamp not null default now(),
6            active  boolean not null default true,
7            bounce_count int not null default 0,
8            ext_id  text,
9          primary key(id)          primary key(id)
10  );  );
11    
12    create unique index users_email_ind on users(email);
13    
14  create table lists (  create table lists (
15          id      serial,          id      serial,
16          name    text not null,          name    text not null,
17          date    timestamp default now(),          from_addr       text not null default '',
18            email   text not null,
19            bounce_limit int not null default 3,
20            date    timestamp not null default now(),
21          primary key(id)          primary key(id)
22  );  );
23    
24    create unique index lists_name_ind on lists(name);
25    create unique index lists_email_ind on lists(email);
26    
27  create table user_list (  create table user_list (
28          user_id int not null references users(id),          user_id int not null references users(id) on update cascade on delete cascade,
29          list_id int not null references lists(id),          list_id int not null references lists(id) on update cascade on delete cascade,
30          date    timestamp default now(),          date    timestamp not null default now(),
31          primary key (user_id, list_id)          primary key (user_id, list_id)
32  );  );
33    
34  create table messages (  create table messages (
35          id      serial,          id      serial,
36          message text not null,          message text not null,
37          date    timestamp default now(),          date    timestamp not null default now(),
38          primary key(id)          primary key(id)
39  );  );
40    
41  insert into users (email, full_name) values ('dpavlin@rot13.org', 'DbP');  create table queue (
42  insert into users (email, full_name) values ('dpavlin@gmail.com', 'DbP');          message_id int not null references messages(id) on update cascade on delete cascade,
43  insert into users (email, full_name) values ('xxx_doesnt_exist_xxx@gmail.com', 'fake');          list_id int not null references lists(id) on update cascade on delete cascade,
44            date    timestamp not null default now(),
45            all_sent boolean default false,
46            primary key(message_id, list_id)
47    );
48    
49    create table sent (
50            message_id int not null references messages(id) on update cascade on delete cascade,
51            user_id int not null references users(id) on update cascade on delete cascade,
52            hash    text not null,
53            date    timestamp not null default now(),
54            primary key(message_id, user_id)
55    );
56    
57    create unique index sent_hash_ind on sent(hash);
58    
59    create table received (
60            id serial,
61            user_id int references users(id),
62            list_id int not null references lists(id),
63            message_id int references messages(id),
64            message text not null,
65            bounced boolean not null default false,
66            date    timestamp not null default now(),
67            primary key (id)
68    );
69    
70  insert into lists (name) values ('Just me');  create index received_user_id_int on received(user_id);
71  insert into lists (name) values ('All users');  create index received_list_id_int on received(list_id);
72    
 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;  

Legend:
Removed from v.1  
changed lines
  Added in v.47

  ViewVC Help
Powered by ViewVC 1.1.26