1 | /* $ld: theirry_pg.sql v.1.25 2006/3/28 21:00:12 jstates Exp $
|
---|
2 | *
|
---|
3 | * This is the table setup necessary for use with Theirry CMS
|
---|
4 | * Copyright (c) 2004-2006 Productivity Media, LLC. <theirry[at]productivitymedia[dot]com>
|
---|
5 | *
|
---|
6 | * !! IMPORTANT !!
|
---|
7 | * This database application uses triggers to automate the tasks. Use createlang
|
---|
8 | * on the database.
|
---|
9 | *
|
---|
10 | * Usage -> /path/to/pgsql/bin/createdb -E UTF8 -U useranme -e thierry
|
---|
11 | * -> /path/to/pgsql/bin/createlang plpgsql -U username -d theirry
|
---|
12 | */
|
---|
13 |
|
---|
14 | --create the theirry schema in order to not mess-up the other tables in your database
|
---|
15 | CREATE SCHEMA ticket;
|
---|
16 |
|
---|
17 | -- Table for system staff (helping with content)
|
---|
18 | CREATE TABLE ticket.staff (
|
---|
19 | staff_id serial PRIMARY KEY NOT NULL,
|
---|
20 | firstname varchar(100) NOT NULL DEFAULT 0,
|
---|
21 | lastname varchar(150) NOT NULL DEFAULT 0,
|
---|
22 | username varchar(35) UNIQUE NOT NULL DEFAULT 0,
|
---|
23 | identifier varchar(40) UNIQUE NOT NULL,
|
---|
24 | email varchar(128) UNIQUE NOT NULL DEFAULT 0,
|
---|
25 | password varchar(88) UNIQUE NOT NULL DEFAULT '-',
|
---|
26 | company varchar(255) NOT NULL DEFAULT 0,
|
---|
27 | department varchar(150) NOT NULL DEFAULT '-',
|
---|
28 | address varchar(180) NOT NULL DEFAULT 0,
|
---|
29 | address2 varchar(180) NULL DEFAULT '-',
|
---|
30 | city varchar(140) NOT NULL DEFAULT '-',
|
---|
31 | state_province varchar(150) NOT NULL DEFAULT '-',
|
---|
32 | country varchar(80) NOT NULL DEFAULT 0,
|
---|
33 | mail_code varchar(15) NOT NULL DEFAULT 0,
|
---|
34 | contact_number varchar(100) NOT NULL DEFAULT 0,
|
---|
35 | staff_question varchar(255) NOT NULL DEFAULT 0,
|
---|
36 | staff_answer varchar(255) NOT NULL DEFAULT 0,
|
---|
37 | register_date date NOT NULL,
|
---|
38 | last_login timestamptz UNIQUE NOT NULL,
|
---|
39 | is_admin boolean NOT NULL DEFAULT FALSE,
|
---|
40 | activated boolean NOT NULL DEFAULT FALSE,
|
---|
41 | activated_keys varchar NOT NULL DEFAULT 0,
|
---|
42 | last_updated timestamptz UNIQUE NULL
|
---|
43 | );
|
---|
44 |
|
---|
45 | -- Table for system adminitrators
|
---|
46 | CREATE TABLE ticket.admin (
|
---|
47 | admin_id serial PRIMARY KEY NOT NULL,
|
---|
48 | firstname varchar(100) NOT NULL DEFAULT '-',
|
---|
49 | lastname varchar(150) NOT NULL DEFAULT '-',
|
---|
50 | username varchar(50) NOT NULL DEFAULT '-' REFERENCES ticket.staff(username) ON DELETE CASCADE ON UPDATE CASCADE,
|
---|
51 | email varchar(150) UNIQUE NOT NULL DEFAULT '-',
|
---|
52 | department varchar(150) NOT NULL DEFAULT '-',
|
---|
53 | last_login timestamptz NOT NULL REFERENCES ticket.staff(last_login) ON DELETE CASCADE ON UPDATE CASCADE,
|
---|
54 | admin_level smallint NOT NULL DEFAULT 3 CHECK(admin_level = 0 OR admin_level = 1 OR admin_level = 2 OR admin_level = 3),
|
---|
55 | staff_id smallint NULL DEFAULT 0 REFERENCES ticket.staff(staff_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
---|
56 | mail_comments boolean DEFAULT FALSE,
|
---|
57 | mail_trackback boolean DEFAULT FALSE,
|
---|
58 | publish_right boolean DEFAULT FALSE,
|
---|
59 | last_updated timestamptz NULL REFERENCES ticket.staff(last_updated) ON DELETE CASCADE ON UPDATE CASCADE
|
---|
60 | );
|
---|
61 |
|
---|
62 | --Table for the users to the site
|
---|
63 | CREATE TABLE ticket.users (
|
---|
64 | user_id serial PRIMARY KEY NOT NULL,
|
---|
65 | firstname varchar(100) NOT NULL DEFAULT '-',
|
---|
66 | lastname varchar(100) NOT NULL DEFAULT '-',
|
---|
67 | username varchar(50) NOT NULL DEFAULT '-',
|
---|
68 | password varchar(88) NOT NULL DEFAULT '-',
|
---|
69 | identifier varchar(40) UNIQUE NOT NULL,
|
---|
70 | email varchar(150) UNIQUE NOT NULL DEFAULT '-',
|
---|
71 | country varchar(255) NOT NULL,
|
---|
72 | token varchar(40) NOT NULL
|
---|
73 | );
|
---|
74 |
|
---|
75 | -- Table for site categories
|
---|
76 | CREATE TABLE ticket.categories (
|
---|
77 | category_id serial PRIMARY KEY NOT NULL,
|
---|
78 | name varchar(255) NULL,
|
---|
79 | icon varchar(255) NULL,
|
---|
80 | description text NULL,
|
---|
81 | author_id smallint NOT NULL REFERENCES ticket.staff(staff_id) ON DELETE CASCADE ON UPDATE CASCADE,
|
---|
82 | category_left smallint NULL DEFAULT '0',
|
---|
83 | catefory_right smallint NULL DEFAULT '0',
|
---|
84 | parent_id smallint NOT NULL DEFAULT '0'
|
---|
85 | );
|
---|