78cd5ad9162c5c07cd8eaa7da077ef1745a18285
[clearscm.git] / maps / bin / MAPSDB.sql
1 -------------------------------------------------------------------------------
2 --
3 -- File:        $RCSFile$
4 -- Revision:    $Revision: 1.1 $
5 -- Description: This file creates the MAPS database.
6 -- Author:      Andrew@DeFaria.com
7 -- Created:     Tue May 13 13:28:18 PDT 2003
8 -- Modified:    $Date: 2013/06/12 14:05:47 $
9 -- Language:    SQL
10 --
11 -- Copyright (c) 2000-2006, Andrew@DeFaria.com, all rights reserved
12 --
13 -------------------------------------------------------------------------------
14 -- Warning: The following line will delete the old database!
15 drop database if exists MAPS;
16
17 -- Create a new database
18 create database MAPS;
19
20 -- Now let's focus on this new database
21 use MAPS;
22
23 -- user: Valid users and their passwords are contained here
24 create table user (
25   userid      varchar (128) not null,
26   name        tinytext      not null,
27   email       varchar (128) not null,
28   password    tinytext      not null,
29   primary key (userid)
30 ); -- user
31
32 -- useropts: User's options are stored here
33 create table useropts (
34   userid         varchar (128) not null,
35   name           tinytext,
36   value          varchar (128),
37   key user_index (userid),
38   foreign key (userid) references user (userid) on delete cascade
39 ); -- useropts
40
41 -- email: Table that holds the email
42 create table email (
43   userid           varchar (128) not null,
44   sender           varchar (128) not null,
45   subject          varchar (255),
46   timestamp        datetime,
47   data             longblob,
48   key user_index   (userid),
49   foreign key      (userid) references user (userid) on delete cascade,
50   key sender_index (sender)
51 ); -- email
52
53 -- whitelist: Table holds the users' whitelists
54 create table list (
55   userid            varchar (128)                   not null,
56   type              enum ("white", "black", "null") not null,
57   pattern           varchar (128),
58   domain            varchar (128),
59   comment           varchar (128),
60   sequence          smallint,
61   hit_count         integer,
62   last_hit          datetime,
63   key user_index    (userid),
64   key user_listtype (userid, type),
65   unique            (userid, type, sequence),
66   foreign key       (userid) references user (userid) on delete cascade
67 ); -- list
68
69 -- log: Table to hold log information
70 create table log (
71   userid    varchar (128) not null,
72   timestamp datetime,
73   sender    varchar (128),
74   type      enum (
75     "blacklist",
76     "debug",
77     "error",
78     "info",
79     "mailloop",
80     "nulllist",
81     "registered",
82     "returned",
83     "whitelist"
84   ) not null,
85   message        varchar (255) not null,
86   key user_index (userid),
87   foreign key     (userid) references user (userid) on delete cascade
88 ); -- log
89
90 -- Create users
91 -- New 8.0 syntax...
92 create user 'maps'@'localhost' identified by 'spam';
93 grant all privileges on MAPS.* to 'maps'@'localhost';