removed those reserved words. added the sequences. triggers still missing.

This commit is contained in:
izzy 2000-09-15 12:46:50 +00:00
parent 41fae14630
commit 7355ddb1f5

View File

@ -1,10 +1,22 @@
------------------------------------------------------------------------------
-- Create_Tables Script for Oracle --
-- not yet completed and not yet fully working. The trigger functions still --
-- need to be built and I couldn't figure out yet how to do this... --
------------------------------------------------------------------------------
create table applications (
app_name varchar(25) NOT NULL, ------------------
app_title varchar(50), -- APPLICATIONS --
app_enabled int, ------------------
unique(app_name)
); CREATE TABLE applications (
app_name varchar2(25) NOT NULL,
app_title varchar2(50),
app_enabled int
);
create unique index applications_app_name
on applications (app_name);
insert into applications (app_name, app_title, app_enabled) values ('admin', 'Administration', 1); insert into applications (app_name, app_title, app_enabled) values ('admin', 'Administration', 1);
insert into applications (app_name, app_title, app_enabled) values ('filemanager', 'File manager', 1); insert into applications (app_name, app_title, app_enabled) values ('filemanager', 'File manager', 1);
@ -15,71 +27,86 @@ insert into applications (app_name, app_title, app_enabled) values ('email', 'Em
insert into applications (app_name, app_title, app_enabled) values ('nntp', 'NNTP', 1); insert into applications (app_name, app_title, app_enabled) values ('nntp', 'NNTP', 1);
insert into applications (app_name, app_title, app_enabled) values ('cron_apps', 'cron_apps', 0); insert into applications (app_name, app_title, app_enabled) values ('cron_apps', 'cron_apps', 0);
create function get_seq(seq_table in varchar2(40)) --------------
return number is -- ACCOUNTS --
seq number(11); --------------
begin
select seq_table.nextval into seq from dual;
return(seq);
end
create sequence accounts_seq; CREATE TABLE accounts (
# we need to write an insert trigger for autoincrementation con number(11) DEFAULT '0' NOT NULL , --auto-increment
create table accounts ( loginid varchar2(25) NOT NULL,
con int default get_seq(accounts_seq), passwd varchar2(32) NOT NULL,
loginid varchar(25) NOT NULL, firstname varchar2(50),
passwd char(32) NOT NULL, lastname varchar2(50),
firstname varchar(50),
lastname varchar(50),
permissions text, permissions text,
groups varchar(30), groups varchar2(30),
lastlogin int, lastlogin number(11),
lastloginfrom varchar(255), lastloginfrom varchar2(255),
lastpasswd_change int, lastpasswd_change number(11),
status char(1), status varchar2(40) DEFAULT 'A' check (status in ('A','L')) NOT NULL,
unique(loginid),unique(con) PRIMARY KEY (con)
); );
create unique index accounts_loginid
on accounts (loginid);
create sequence accounts_seq
increment by 1
start with 0
maxvalue 999999999
minvalue 0
nocycle
nocache;
-- this trigger unfortunately does not work, since "NEW or OLD references are
-- not allowed in table level triggers" (oracle error msg quoted here). But we
-- need to define some triggers like this for each table that needs the
-- auto-increment function:
--
-- create trigger accounts_trg
-- before insert into accounts
-- begin
-- :new.con := accounts_seq.nextid;
-- end;
-- /
insert into accounts (loginid,passwd,firstname,lastname,permissions,groups, insert into accounts (loginid,passwd,firstname,lastname,permissions,groups,
status) values ('demo','81dc9bdb52d04dc20036dbd8313ed055','Demo','Account', status) values ('demo','81dc9bdb52d04dc20036dbd8313ed055','Demo','Account',
':admin:email:todo:addressbook:calendar:hr:',',1,','A'); ':admin:email:todo:addressbook:calendar:hr:',',1,','A');
------------
-- GROUPS --
------------
create sequence groups_seq;
# we need to write an insert trigger for autoincrementation
create table groups ( create table groups (
group_id int default get_seq(groups_seq), group_id int NOT NULL , --auto-increment
group_name varchar(50), group_name varchar2(255),
group_apps varchar(255), group_apps varchar2(255),
unique(group_id) primary key(group_id)
); );
create sequence groups_seq
increment by 1
start with 0
maxvalue 999999999
minvalue 0
nocycle
nocache;
insert into groups (group_name) values ('Default'); insert into groups (group_name) values ('Default');
create table sessions (
sessionid varchar(255),
loginid varchar(20),
passwd varchar(255),
ip varchar(255),
logintime int,
dla int,
unique(sessionid)
);
CREATE TABLE app_sessions ( -----------------
sessionid varchar(255) NOT NULL, -- PREFERENCES --
loginid varchar(20), -----------------
app varchar(20),
content text
);
create table preferences ( CREATE TABLE preferences (
owner varchar(20), owner varchar2(20),
name varchar(50), name varchar2(50),
value varchar(50) value varchar2(50)
); );
insert into preferences values ('demo','maxmatchs','10'); insert into preferences values ('demo','maxmatchs','10');
insert into preferences values ('demo','email_sig','');
insert into preferences values ('demo','mainscreen_showbirthdays','True'); insert into preferences values ('demo','mainscreen_showbirthdays','True');
insert into preferences values ('demo','mainscreen_showevents','True'); insert into preferences values ('demo','mainscreen_showevents','True');
insert into preferences values ('demo','timeformat','12'); insert into preferences values ('demo','timeformat','12');
@ -87,127 +114,243 @@ insert into preferences values ('demo','dateformat','m/d/Y');
insert into preferences values ('demo','theme','default'); insert into preferences values ('demo','theme','default');
insert into preferences values ('demo','tz_offset','0'); insert into preferences values ('demo','tz_offset','0');
--------------
-- SESSIONS --
--------------
CREATE TABLE sessions (
sessionid varchar2(255) NOT NULL,
loginid varchar2(20),
passwd varchar2(255),
ip varchar2(255),
logintime number(11),
dla number(11)
);
create unique index sessions_sessionid
on sessions (sessionid);
------------------
-- APP_SESSIONS --
------------------
CREATE TABLE app_sessions (
sessionid varchar2(255) NOT NULL,
loginid varchar2(20),
app varchar2(20),
content text
);
----------------
-- ACCESS_LOG --
----------------
create table access_log ( create table access_log (
sessionid varchar(30), sessionid varchar2(30),
loginid varchar(30), loginid varchar2(30),
ip varchar(30), ip varchar2(30),
li int, li int,
lo int lo int
); );
create sequence profiles_seq;
# we need to write an insert trigger for autoincrementation --------------
-- PROFILES --
--------------
CREATE TABLE profiles ( CREATE TABLE profiles (
con int default get_seq(profiles_seq), con number(11) DEFAULT '0' NOT NULL , --auto-increment
owner varchar(20), owner varchar2(20),
title varchar(255), title varchar2(255),
phone_number varchar(255), phone_number varchar2(255),
comments text, comments varchar2(4000),
picture_format varchar(255), picture_format varchar2(255),
picture text, picture blob,
unique(con) PRIMARY KEY (con)
); );
create sequence addressbook_seq; create sequence profiles_seq
# we need to write an insert trigger for autoincrementation increment by 1
create table addressbook ( start with 0
con int default get_seq(addressbook_seq), maxvalue 999999999
owner varchar(25), minvalue 0
access varchar(10), nocycle
firstname varchar(255), nocache;
lastname varchar(255),
email varchar(255),
hphone varchar(255), -----------------
wphone varchar(255), -- ADDRESSBOOK --
fax varchar(255), -----------------
pager varchar(255),
mphone varchar(255), CREATE TABLE addressbook (
ophone varchar(255), con number(11) DEFAULT '0' NOT NULL , --auto-increment
street varchar(255), owner varchar2(25),
city varchar(255), addr_access varchar2(10),
state varchar(255), firstname varchar2(255),
zip varchar(255), lastname varchar2(255),
bday varchar(255), email varchar2(255),
notes TEXT, hphone varchar2(255),
company varchar(255), wphone varchar2(255),
unique(con) fax varchar2(255),
pager varchar2(255),
mphone varchar2(255),
ophone varchar2(255),
street varchar2(255),
city varchar2(255),
state varchar2(255),
zip varchar2(255),
bday varchar2(255),
notes text,
company varchar2(255),
PRIMARY KEY (con)
); );
create sequence todo_seq; create sequence addressbook_seq
# we need to write an insert trigger for autoincrementation increment by 1
create table todo ( start with 0
con int default get_seq(todo_seq), maxvalue 999999999
owner varchar(25), minvalue 0
access varchar(10), nocycle
des text, nocache;
pri int,
status int,
datecreated int, ----------
datedue int, -- TODO --
unique(con) ----------
CREATE TABLE todo (
con number(11) DEFAULT '0' NOT NULL , --auto-increment
owner varchar2(25),
todo_access varchar2(10),
des text,
pri number(11),
status number(11),
datecreated number(11),
datedue number(11),
PRIMARY KEY (con)
); );
create sequence webcal_entry_seq; create sequence todo_seq
# we need to write an insert trigger for autoincrementation increment by 1
start with 0
maxvalue 999999999
minvalue 0
nocycle
nocache;
------------------
-- WEBCAL_ENTRY --
------------------
CREATE TABLE webcal_entry ( CREATE TABLE webcal_entry (
cal_id int default get_seq(webcal_entry_seq), cal_id number(11) DEFAULT '0' NOT NULL , --auto-increment
cal_group_id int NULL, cal_group_id number(11),
cal_create_by varchar(25) NOT NULL, cal_create_by varchar2(25) NOT NULL,
cal_date int NOT NULL, cal_date number(11) DEFAULT '0' NOT NULL,
cal_time int NULL, cal_time number(11),
cal_mod_date int, cal_mod_date number(11),
cal_mod_time int, cal_mod_time number(11),
cal_duration int NOT NULL, cal_duration number(11) DEFAULT '0' NOT NULL,
cal_priority int DEFAULT 2, cal_priority number(11) DEFAULT '2',
cal_type varchar(10), cal_type varchar2(10),
cal_access varchar(10), cal_access char(10),
cal_name varchar(80) NOT NULL, cal_name varchar2(80) NOT NULL,
cal_description TEXT, cal_description varchar2(4000),
unique(cal_id) PRIMARY KEY (cal_id)
); );
CREATE TABLE webcal_entry_user ( create sequence webcal_entry_seq
cal_id int NOT NULL, increment by 1
cal_login varchar(25) NOT NULL, start with 0
cal_status char(1) DEFAULT 'A' maxvalue 999999999
); minvalue 0
nocycle
nocache;
create table webcal_entry_repeats (
cal_id int, --------------------------
cal_type varchar(20), -- WEBCAL_ENTRY_REPEATS --
cal_end int, --------------------------
cal_frequency int default 1,
CREATE TABLE webcal_entry_repeats (
cal_id number(11) DEFAULT '0' NOT NULL,
cal_type varchar2(40) DEFAULT 'daily' check (cal_type in ('daily','weekly','monthlyByDay','monthlyByDate','yearly')) NOT NULL,
cal_end number(11),
cal_frequency number(11) DEFAULT '1',
cal_days char(7) cal_days char(7)
); );
------------------------
-- WEBCAL_ENTRY_USERS --
------------------------
CREATE TABLE webcal_entry_user (
cal_id number(11) DEFAULT '0' NOT NULL,
cal_login varchar2(25) NOT NULL,
cal_status char(1) DEFAULT 'A',
PRIMARY KEY (cal_id, cal_login)
);
-------------------------
-- WEBCAL_ENTRY_GROUPS --
-------------------------
create table webcal_entry_groups ( create table webcal_entry_groups (
cal_id int, cal_id int,
groups varchar(255) groups varchar2(255)
); );
create sequence newsgroups_seq;
# we need to write an insert trigger for autoincrementation ----------------
-- NEWSGROUPS --
----------------
CREATE TABLE newsgroups ( CREATE TABLE newsgroups (
con int default get_seq(newsgroups_seq), con number(11) NOT NULL , --auto-increment
name varchar(255) NOT NULL, name varchar2(255) NOT NULL,
messagecount int NOT NULL, messagecount number(11) NOT NULL,
lastmessage int NOT NULL, lastmessage number(11) NOT NULL,
active char DEFAULT 'N' NOT NULL, active char DEFAULT 'N' NOT NULL,
lastread int, lastread number(11),
unique(con) PRIMARY KEY (con)
); );
create unique index newsgroups_name
on newsgroups (name);
create sequence newsgroups_seq
increment by 1
start with 0
maxvalue 999999999
minvalue 0
nocycle
nocache;
---------------------
-- USERS_NEWSGOUPS --
---------------------
CREATE TABLE users_newsgroups ( CREATE TABLE users_newsgroups (
owner int NOT NULL, owner number(11) NOT NULL,
newsgroup int NOT NULL newsgroup number(11) NOT NULL
); );
----------
-- LANG --
----------
CREATE TABLE lang ( CREATE TABLE lang (
message_id varchar(150) DEFAULT '' NOT NULL, message_id varchar2(150) NOT NULL,
app_name varchar(100) DEFAULT 'common' NOT NULL, app_name varchar2(100) DEFAULT 'common' NOT NULL,
lang varchar(5) DEFAULT '' NOT NULL, lang varchar2(5) NOT NULL,
content text NOT NULL, content varchar2(4000) NOT NULL,
unique(message_id,app_name,lang) PRIMARY KEY (message_id,app_name,lang)
); );
COMMIT;