/* $Id: vkc_db_interbase.sql,v 1.3 2007/08/08 13:58:31 marbobo Exp $ */

/*==============================================================*/
/* Database name:  VKC_DB                                       */
/* DBMS name:      InterBase 6.x                                */
/* Created on:     22.08.2002 13:26:13                          */
/*==============================================================*/

/* usergroups mit zeitstempel*/
/* categorydocuments mit zeitstempel*/
/* was passiert wenn links auf ein expired document zeigt, bzw. wenn expired müssen links gelöscht werden */
/* was ist, wenn mehrere docversionen in einem verzeichnis liegen mit den acls */
/* isinitialcategory bei category als categorylink geeignet (man muss alle felder wieder füllen, evt besser linktabelle */
/* macht created bei ...acls sinn? ist doch eh nur ein eintrag */

/* $Log: vkc_db_interbase.sql,v $
/* Revision 1.3  2007/08/08 13:58:31  marbobo
/* *** empty log message ***
/*
/* Revision 1.2  2004/02/21 10:08:17  bigmac
/* *** empty log message ***
/*
/* Revision 1.51  2003/10/05 01:32:54  marbobo
/* +accountValid-Flag in Groups
/*
/* Revision 1.50  2003/09/29 15:40:07  jonyp
/* related doc id
/*
/* Revision 1.49  2003/09/26 15:00:47  jonyp
/* userregistereddocuments table
/*
/* Revision 1.48  2003/09/17 09:27:23  jonyp
/* categories: aclid "not null" added
/*
/* Revision 1.47  2003/09/15 12:45:28  jonyp
/* - internal flag in documenttypes
/* - new permission "d" in context "category"
/*
/* Revision 1.46  2003/09/09 18:07:50  koppy
/* Bugfix: VARCHSR -> VARCHAR
/* USERID -> GROUPID on INDEX_30
/*
/* Revision 1.45  2003/09/09 14:10:03  jonyp
/* datatype bei sysparameters
/*
/* Revision 1.44  2003/09/05 12:06:34  jonyp
/* groupregisteredcategories et al
/*
/* Revision 1.43  2003/09/02 08:28:33  jonyp
/* *** empty log message ***
/*
/* Revision 1.42  2003/09/01 18:43:03  jonyp
/* defaultvalues
/*
/* Revision 1.41  2003/09/01 16:12:00  jonyp
/* changes to table languages
/*
/* Revision 1.40  2003/08/29 07:48:07  jonyp
/* *** empty log message ***
/*
/* Revision 1.39  2003/08/27 12:12:18  jonyp
/* *** empty log message ***
/*
/* Revision 1.38  2003/08/27 10:30:11  jonyp
/* table sysparameters angepasst
/*
/* Revision 1.37  2003/08/05 20:25:59  bigmac
/* *** empty log message ***
/*
/* Revision 1.36  2003/08/04 12:21:15  bigmac
/* Reihenfolge der Tabellen-DROPs korrigiert
/*
/* Revision 1.35  2003/07/30 14:04:07  jonyp
/* table users: new attributes accountvalid/passwdchangedts
/*
/* Revision 1.34  2003/07/30 12:24:48  jonyp
/* inclsubdirs in table userregisteredcategories
/*
/* Revision 1.33  2003/07/30 11:58:15  jonyp
/* several changes
/*
/* Revision 1.31  2003/06/26 12:32:44  jonyp
/* table categories: name/titel expande to varchar(255)
/*
/* Revision 1.30  2003/06/17 15:57:03  koppy
/* documents: + zipped
/*
/* Revision 1.29  2003/04/29 13:52:54  koppy
/* + drops on table USERDOCMAILS / USERKEYMAILS
/*
/* Revision 1.28  2003/04/29 11:19:55  jonyp
/* different bug fixes
/*
/* Revision 1.27  2003/04/28 23:12:45  marbobo
/* ein fehlendes komma in der Tabelle "LANGUAGES" ergänzt
/*
/* Revision 1.26  2003/04/25 13:29:52  jonyp
/* erweiterung der languagetabelle bzg. mailtemplates
/*
/* Revision 1.25  2003/04/24 12:41:50  jonyp
/* bug fix in userregisteredkeywords
/*
/* Revision 1.24  2003/04/24 12:38:27  jonyp
/* float bei userregisteredkeywords als weight
/*
/* Revision 1.23  2003/04/24 12:22:42  jonyp
/* weight bei userregisteredkeywords
/*
/* Revision 1.22  2003/03/17 00:41:54  koppy
/* + internalDocFormat-FLAG bei ADDITIONALDOCUMENTFORMATS
/*
/* Revision 1.21  2003/03/13 15:15:12  jonyp
/* new table userkeymails
/*
/* Revision 1.20  2003/03/03 14:11:05  koppy
/* kleine Anpassungen
/*
/* Revision 1.19  2003/03/03 12:25:29  koppy
/* Auskommentierte Stellen anders formatiert
/*
/* Revision 1.18  2003/02/28 15:51:23  jonyp
/* docSize
/*
/* Revision 1.17  2003/02/27 15:27:37  jonyp
/* version_no bei documents / zipped bei additionaldocumentformats
/*
/* Revision 1.16  2003/02/26 12:52:07  jonyp
/* deleted FK_DOCUMENTS3
/*
/* Revision 1.15  2003/02/21 13:34:53  jonyp
/* bug for table userdocmails
/*
/* Revision 1.14  2003/02/20 15:50:06  jonyp
/* docSize bei tabelle "documents" und "additionaldocformats" neu
/*
/* Revision 1.13  2003/02/18 12:12:01  jonyp
/* neues attribut "anrede (title)" bei tabelle "users"
/*
/* Revision 1.12  2003/02/07 14:45:39  jonyp
/* Änderungen von Testdaten aufgrund Änderungen an dem DBSCHEMA (DYNATTRIBUTES)
/*
/* Revision 1.11  2003/01/29 03:23:30  koppy
/* ACLs + Versionierung
/*
/* Revision 1.10  2002/12/18 15:25:54  jonyp
/* constraints für categories/documents/groups bzgl acls herausgenommen
/* (ergab fehler wegen fehlendem unique index, warum weiss ich (noch) nicht
/*
/* Revision 1.9  2002/12/10 16:30:19  koppy
/* ACLENTRYID changed to ACLID in
/* foreign key definition of CATEGORIES
/*
/* Revision 1.8  2002/11/25 11:01:22  jonyp
/* table keyword modified:term/termdescription
/*
/* Revision 1.7  2002/11/12 15:44:39  koppy
/* + mimetype bei documenttypes
/*
/* Revision 1.6  2002/11/08 01:05:57  koppy
/* <No Comment Entered>
/*
/* Revision 1.5  2002/11/04 01:31:59  koppy
/* <No Comment Entered>
/*
/* Revision 1.4  2002/10/23 08:56:36  jonyp
/* alle metadata felde vom typ "char" auf "varchar" geändert.
/* damit werden die felder nicht mit BLANKS aufgefüllt
/*
/* Revision 1.3  2002/09/13 16:20:20  koppy
/* drop table Documents fehlte + einige foreig keys rausgenommen
/* */

drop table ADDITIONALDOCUMENTFORMATS;

drop table ALLOWEDDOCUMENTTYPES;

drop table CATEGORYDOCUMENTS;

drop table GROUPREGISTEREDCATEGORIES;

drop table USERREGISTEREDCATEGORIES;

drop table USERREGISTEREDKEYWORDS;

drop table USERDOCMAILS;

drop table LANGUAGES;

drop table SEARCHENGINES;

drop table SYSPARAMETERS;

drop table DYNATTRIBUTES;

drop table DOCUMENTTYPES;

drop table defaultcatacls;

drop table defaultdocacls;

drop table defaultgroupacls;

drop table languagepacks;

drop table msgtimeperiods;

drop table templates;

drop table permcontexts;

drop table usergroups;

drop table documentkeywords;

drop table addcatattrvalues;

drop table addcatattrs;

drop table adddocattrvalues;

drop table adddocattrs;

drop table adduserattrvalues;

drop table adduserattrs;

drop table categorykeywords;

drop table addgroupattrvalues;

drop table addgroupattrs;

drop table groupacls;

drop table groups;

drop table categories;

drop table users;

drop table documentacls;

drop table categoryacls;

drop table acltypes;

drop table documentrelations;

drop table documents;

drop table documentclasses;

drop table documentflags;

drop table documentstati;

drop table permissions;

/*==============================================================*/
/* Table: ACLTYPES                                              */
/*==============================================================*/
create table ACLTYPES (
ACLTYPEID            INTEGER                        not null,
NAME                 VARCHAR(20)                    not null,
NAME_KEY             VARCHAR(50),
RANK                 INTEGER                        not null,
DESCRIPTION          VARCHAR(50),
DESCR_KEY            VARCHAR(50),
DEFACLONLY           INTEGER,
IDREQUIRED           INTEGER,
constraint PK_ACLTYPES primary key (ACLTYPEID)
);

/*==============================================================*/
/* Index: INDEX_16                                              */
/*==============================================================*/
create unique asc index INDEX_16 on ACLTYPES (
NAME,
RANK
);

/*==============================================================*/
/* Table: ADDITIONALDOCUMENTFORMATS                             */
/*==============================================================*/
create table ADDITIONALDOCUMENTFORMATS (
ADDDOCFORMATID       INTEGER                        not null,
DOCUMENTID           INTEGER                        not null,
DOCTYPEID            INTEGER                        not null,
ARCHIVEID            INTEGER                        not null,
ZIPPED               INTEGER,
DOCSIZE              INTEGER,
INTERNALDOCFORMAT    INTEGER,
constraint PK_ADDITIONALDOCUMENTFORMATS primary key (ADDDOCFORMATID)
);



/*==============================================================*/
/* Index: INDEX_19                                              */
/*==============================================================*/
create unique asc index INDEX_19 on ADDITIONALDOCUMENTFORMATS (
DOCUMENTID,
DOCTYPEID
);

/*==============================================================*/
/* Table: ALLOWEDDOCUMENTTYPES                                  */
/*==============================================================*/
create table ALLOWEDDOCUMENTTYPES (
/*CATALLDOCTYPEID      INTEGER                        not null,*/
CATEGORYID           INTEGER                        not null,
DOCTYPEID            INTEGER                        not null
/*constraint PK_ALLOWEDDOCUMENTTYPES primary key (CATALLDOCTYPEID)*/
);


/*==============================================================*/
/* Table: CATEGORIES                                            */
/*==============================================================*/
create table CATEGORIES (
CATEGORYID           INTEGER                        not null,
PARENTCATEGORYID     INTEGER,
ACLID                INTEGER                        not null,
DYNATTRSID           INTEGER,
INITIALCATEGORY      INTEGER,
NAME                 VARCHAR(255)                   not null,
DESCRIPTION          VARCHAR(4000),
SHOWDESCRIPTION      INTEGER,
TEMPLATEID           INTEGER,
CREATED              TIMESTAMP,
CREATORID            INTEGER,
LASTCHANGED          TIMESTAMP,
LASTCHANGERID        INTEGER,
LASTACCESSED         TIMESTAMP,
LASTACCESSORID       INTEGER,
ACCESSCOUNTER        INTEGER,
constraint PK_CATEGORIES primary key (CATEGORYID)
);


/*==============================================================*/
/* Table: ADDCATATTRS                                           */
/*==============================================================*/
create table ADDCATATTRS (
CATATTRID            INTEGER                        not null,
NAME                 VARCHAR(255)                   not null,
NAME_KEY             VARCHAR(50),
DESCRIPTION          VARCHAR(255),
DESCR_KEY            VARCHAR(50),
ALLOWNULL            INTEGER,
DEFAULTVALUE         VARCHAR(255),
constraint PK_ADDCATATTRS primary key (CATATTRID)
);


/*==============================================================*/
/* Table: ADDCATATTRVALUES                                      */
/*==============================================================*/
create table ADDCATATTRVALUES (
CATEGORYID           INTEGER                        not null, 
CATATTRID            INTEGER                        not null,   
VALUESTRING          VARCHAR(255)
);

/*==============================================================*/
/* Index: INDEX_23                                              */
/*==============================================================*/
create unique asc index INDEX_23 on ADDCATATTRVALUES (
CATEGORYID,
CATATTRID
);


/*==============================================================*/
/* Table: CATEGORYACLS                                          */
/*==============================================================*/
create table CATEGORYACLS (
ACLENTRYID           INTEGER                        not null,
ACLID                INTEGER                        not null,
ACLTYPEID            INTEGER                        not null,
ACCESSORID           INTEGER                        not null,
PERMISSIONID         INTEGER                        not null,
CREATED              TIMESTAMP,
CREATORID            INTEGER,
constraint PK_CATEGORYACLS primary key (ACLENTRYID)
);

/*==============================================================*/
/* Index: INDEX_14                                              */
/*==============================================================*/
create unique asc index INDEX_14 on CATEGORYACLS (
ACLID,
ACLTYPEID,
ACCESSORID,
PERMISSIONID
);


/*==============================================================*/
/* Table: DEFAULTCATACLS                                        */
/*==============================================================*/
create table DEFAULTCATACLS (
ACLENTRYID           INTEGER                        not null,
STARTCATID           INTEGER                        not null,
ACLTYPEID            INTEGER                        not null,
ACCESSORID           INTEGER                        not null,
PERMISSIONID         INTEGER                        not null,
CREATED              TIMESTAMP,
CREATORID            INTEGER,
constraint PK_DEFAULTCATACLS primary key (ACLENTRYID)
);

/*==============================================================*/
/* Index: INDEX_26                                              */
/*==============================================================*/
create unique asc index INDEX_26 on DEFAULTCATACLS (
STARTCATID,
ACLTYPEID,
ACCESSORID,
PERMISSIONID
);


/*==============================================================*/
/* Table: CATEGORYDOCUMENTS                                     */
/*==============================================================*/
create table CATEGORYDOCUMENTS (
CATDOCID             INTEGER                        not null,
CATEGORYID           INTEGER                        not null,
DOCUMENTID           INTEGER                        not null,
INITIALCATEGORY      INTEGER,
CREATED              TIMESTAMP,
CREATORID            INTEGER,
constraint PK_CATEGORYDOCUMENTS primary key (CATDOCID)
);


/*==============================================================*/
/* Index: INDEX_20                                              */
/*==============================================================*/
create unique asc index INDEX_20 on CATEGORYDOCUMENTS (
CATEGORYID,
DOCUMENTID
);

/*==============================================================*/
/* Table: CATEGORYKEYWORDS                                      */
/*==============================================================*/
/* jp: evt besser mit eindeutigem schlüssel 
       dann kann man eine liste mit catekeyentryid führen und laden 
*/
create table CATEGORYKEYWORDS (
CATEGORYID           INTEGER                          not null,
TERM                 VARCHAR(255),
TERMDESCRIPTOR       VARCHAR(255)                     not null,
WEIGHT               DOUBLE PRECISION,
INTERNAL             INTEGER
);

/*==============================================================*/
/* Index: INDEX_5                                               */
/*==============================================================*/

/*create unique asc index INDEX_5 on CATEGORYKEYWORDS (*/
/*CATEGORYID,*/
/*KEYWORDID*/
/*);*/

/*==============================================================*/
/* Table: DOCUMENTACLS                                          */
/*==============================================================*/
create table DOCUMENTACLS (
ACLENTRYID           INTEGER                        not null,
ACLID                INTEGER                        not null,
ACLTYPEID            INTEGER                        not null,
ACCESSORID           INTEGER                        not null,
PERMISSIONID         INTEGER                        not null,
CREATED              TIMESTAMP,
CREATORID            INTEGER,
constraint PK_DOCUMENTACLS primary key (ACLENTRYID)
);

/*==============================================================*/
/* Index: INDEX_11                                              */
/*==============================================================*/
create unique asc index INDEX_11 on DOCUMENTACLS (
ACLID,
ACLTYPEID,
ACCESSORID,
PERMISSIONID
);

/*==============================================================*/
/* Table: DEFAULTDOCACLS                                        */
/*==============================================================*/
create table DEFAULTDOCACLS (
ACLENTRYID           INTEGER                        not null,
STARTCATID           INTEGER                        not null,
ACLTYPEID            INTEGER                        not null,
ACCESSORID           INTEGER                        not null,
PERMISSIONID         INTEGER                        not null,
CREATED              TIMESTAMP,
CREATORID            INTEGER,
constraint PK_DEFAULTDOCACLS primary key (ACLENTRYID)
);

/*==============================================================*/
/* Index: INDEX_27                                              */
/*==============================================================*/
create unique asc index INDEX_27 on DEFAULTDOCACLS (
STARTCATID,
ACLTYPEID,
ACCESSORID,
PERMISSIONID
);

/*==============================================================*/
/* Table: DOCUMENTFLAGS                                         */
/*==============================================================*/
create table DOCUMENTFLAGS (
FLAG                 INTEGER                        not null,
DESCRIPTION          VARCHAR(20),
constraint PK_DOCUMENTFLAGS primary key (FLAG)
);

/*==============================================================*/
/* Table: DOCUMENTKEYWORDS                                      */
/*==============================================================*/
create table DOCUMENTKEYWORDS (
DOCUMENTID           INTEGER                          not null,
TERM                 VARCHAR(255),
TERMDESCRIPTOR       VARCHAR(255)                     not null,
WEIGHT               DOUBLE PRECISION,
INTERNAL             INTEGER
);

/*==============================================================*/
/* Index: INDEX_2                                               */
/*==============================================================*/

/*create unique asc index INDEX_2 on DOCUMENTKEYWORDS (*/
/*DOCUMENTID,*/
/*KEYWORDID*/
/*);*/

/*==============================================================*/
/* Table: DOCUMENTS                                             */
/*==============================================================*/
create table DOCUMENTS (
DOCUMENTID           INTEGER                        not null,
PREDOCID             INTEGER,
NAME                 VARCHAR(255)                   not null,
TITLE                VARCHAR(255),
DESCRIPTION          VARCHAR(4000),
TYPEID               INTEGER                        not null,
DOCCLASSID           INTEGER                        not null,
ARCHIVEID            INTEGER                        not null,
VERSION_NO           INTEGER                        not null,
VERSION_HIGH         INTEGER                        not null,
VERSION_LOW          INTEGER                        not null,
VERSION_DESCR        VARCHAR(255), 
SUMMARY              VARCHAR(255),
STATUS               INTEGER                        not null,
FLAG                 INTEGER                        not null,
ACLID                INTEGER,
EXPIRES              TIMESTAMP,
PUBLISHED            TIMESTAMP                      not null,
AUTHORID             INTEGER                        not null,
LASTCHANGED          TIMESTAMP,
LASTCHANGERID        INTEGER,
LASTACCESSED         TIMESTAMP,
LASTACCESSORID       INTEGER,
ACCESSCOUNTER        INTEGER,
DYNATTRSID           INTEGER,
DOCSIZE              INTEGER,
ZIPPED               INTEGER,
LANGPACKID           INTEGER,
LOCKUSERID           INTEGER,
constraint PK_DOCUMENTS primary key (DOCUMENTID)
);


/*==============================================================*/
/* Table: ADDDOCATTRS                                           */
/*==============================================================*/
create table ADDDOCATTRS (
DOCATTRID            INTEGER                        not null,
NAME                 VARCHAR(255)                   not null,
NAME_KEY             VARCHAR(50),
DESCRIPTION          VARCHAR(50), 
DESCR_KEY            VARCHAR(255), 
ALLOWNULL            INTEGER,
DEFAULTVALUE         VARCHAR(255),
constraint PK_ADDDOCATTRS primary key (DOCATTRID)
);


/*==============================================================*/
/* Table: ADDDOCATTRVALUES                                      */
/*==============================================================*/
create table ADDDOCATTRVALUES (
DOCUMENTID           INTEGER                        not null, 
DOCATTRID            INTEGER                        not null,   
VALUESTRING          VARCHAR(255)
);

/*==============================================================*/
/* Index: INDEX_24                                              */
/*==============================================================*/
create unique asc index INDEX_24 on ADDDOCATTRVALUES (
DOCUMENTID,
DOCATTRID
);


/*==============================================================*/
/* Table: DOCUMENTRELATIONS                                     */
/*==============================================================*/
create table DOCUMENTRELATIONS (
DOCRELID             INTEGER                        not null,
DOCID                INTEGER                        not null,
RELDOCID             INTEGER                        not null,
VALUESTRING          VARCHAR(100),
constraint PK_DOCUMENTRELATIONS primary key (DOCRELID)
);

/*==============================================================*/
/* Index: INDEX_21                                              */
/*==============================================================*/
create unique asc index INDEX_21 on DOCUMENTRELATIONS (
DOCID,
RELDOCID
);

/*==============================================================*/
/* Table: DOCUMENTSTATI                                         */
/*==============================================================*/
create table DOCUMENTSTATI (
STATUS               INTEGER                        not null,
DESCRIPTION          VARCHAR(50)                    not null,
DESC_KEY             VARCHAR(50),
REMARK               VARCHAR(50),
constraint PK_DOCUMENTSTATI primary key (STATUS)
);

/*==============================================================*/
/* Table: DOCUMENTTYPES                                         */
/*==============================================================*/
create table DOCUMENTTYPES (
DOCTYPEID            INTEGER                        not null,
EXTENSION            VARCHAR(10)                    not null,
EXTENSION_KEY        VARCHAR(50),
DESCRIPTION          VARCHAR(50),
DESCRIPTION_SHORT    VARCHAR(20),
DESCR_KEY            VARCHAR(50),
IMGPATH_ENABLED      VARCHAR(50),
IMGPATH_DISABLED     VARCHAR(50), 
IMGPATH_SHADED       VARCHAR(50), 
MIMETYPE             VARCHAR(50),
INTERNAL             INTEGER,
constraint PK_DOCUMENTTYPES primary key (DOCTYPEID)
);

/*==============================================================*/
/* Table: DOCUMENTCLASSES                                       */
/*==============================================================*/
create table DOCUMENTCLASSES (
DOCCLASSID           INTEGER                        not null,
NAME                 VARCHAR(50)                    not null,
NAME_KEY             VARCHAR(50),
DESCRIPTION          VARCHAR(100),
DESCR_KEY            VARCHAR(100),
FLAG                 INTEGER,
constraint PK_DOCUMENTCLASSES primary key (DOCCLASSID)
);


/*==============================================================*/
/* Index: INDEX_18                                              */
/*==============================================================*/
create unique asc index INDEX_18 on DOCUMENTTYPES (
EXTENSION
);

/*==============================================================*/
/* Table: DYNATTRIBUTES                                         */
/*==============================================================*/
create table DYNATTRIBUTES (
DAENTYRID       INTEGER                   not null,
DYNATTRID       INTEGER                   not null,
NAME            VARCHAR(50)               not null,
NAME_KEY        VARCHAR(50),
VALUESTRING     VARCHAR(4000),
constraint PK_DYNATTRIBUTES primary key (DAENTYRID)
);

/*==============================================================*/
/* Table: GROUPACLS                                             */
/*==============================================================*/
create table GROUPACLS (
ACLENTRYID           INTEGER                        not null,
ACLID                INTEGER                        not null,
ACLTYPEID            INTEGER                        not null,
ACCESSORID           INTEGER                        not null,
PERMISSIONID         INTEGER                        not null,
CREATED              TIMESTAMP,
CREATORID            INTEGER,
constraint PK_GROUPACLS primary key (ACLENTRYID)
);


/*==============================================================*/
/* Index: INDEX_17                                              */
/*==============================================================*/
create unique asc index INDEX_17 on GROUPACLS (
ACLID,
ACLTYPEID,
ACCESSORID,
PERMISSIONID
);


/*==============================================================*/
/* Table: DEFAULTGROUPACLS                                      */
/*==============================================================*/
create table DEFAULTGROUPACLS (
ACLENTRYID           INTEGER                        not null,
ACLTYPEID            INTEGER                        not null,
ACCESSORID           INTEGER                        not null,
PERMISSIONID         INTEGER                        not null,
CREATED              TIMESTAMP,
CREATORID            INTEGER,
constraint PK_DEFAULTGROUPACL primary key (ACLENTRYID)
);


/*==============================================================*/
/* Index: INDEX_28                                              */
/*==============================================================*/
create unique asc index INDEX_28 on DEFAULTGROUPACLS (
ACLTYPEID,
ACCESSORID,
PERMISSIONID
);


/*==============================================================*/
/* Table: GROUPS                                                */
/*==============================================================*/
create table GROUPS (
GROUPID              INTEGER                        not null,
ACLID                INTEGER,
NAME                 VARCHAR(50)                    not null,
NAME_KEY             VARCHAR(50),
DESCRIPTION          VARCHAR(50),
DESCR_KEY            VARCHAR(50),
ACCOUNTVALID         INTEGER,
ADMINPRIVILEGES      INTEGER,
CREATEGROUPS         INTEGER,
GROUPVALID           INTEGER,
VALIDFROM            TIMESTAMP,
VALIDUNTIL           TIMESTAMP,
CREATED              TIMESTAMP,
CREATORID            INTEGER,
LASTCHANGED          TIMESTAMP,
LASTCHANGERID        INTEGER,
constraint PK_GROUPS primary key (GROUPID)
);

/*==============================================================*/
/* Index: INDEX_12                                              */
/*==============================================================*/
create unique asc index INDEX_12 on GROUPS (
NAME
);


/*==============================================================*/
/* Table: ADDGROUPATTRS                                         */
/*==============================================================*/
create table ADDGROUPATTRS (
GROUPATTRID          INTEGER                        not null,
NAME                 VARCHAR(255)                   not null,
NAME_KEY             VARCHAR(50),
DESCRIPTION          VARCHAR(255),
DESCR_KEY            VARCHAR(50),
ALLOWNULL            INTEGER,
DEFAULTVALUE         VARCHAR(255),
constraint PK_ADDGROUPATTRS primary key (GROUPATTRID)
);


/*==============================================================*/
/* Table: ADDGROUPATTRVALUES                                    */
/*==============================================================*/
create table ADDGROUPATTRVALUES (
GROUPID              INTEGER                        not null, 
GROUPATTRID          INTEGER                        not null,   
VALUESTRING          VARCHAR(255)
);

/*==============================================================*/
/* Index: INDEX_29                                             */
/*==============================================================*/
create unique asc index INDEX_29 on ADDGROUPATTRVALUES (
GROUPID,
GROUPATTRID
);


/*==============================================================*/
/* Table: KEYWORDS                                              */
/*==============================================================*/
/*
create table KEYWORDS (
KEYWORDID            SMALLINT                       not null,
TERM                 VARCHAR(255),
TERMDESCRIPTION      VARCHAR(255),
constraint PK_KEYWORDS primary key (KEYWORDID)
);
*/

/*==============================================================*/
/* Table: LANGUAGES                                             */
/*==============================================================*/
create table LANGUAGES (
LANGUAGEID           INTEGER                        not null,
NAME                 VARCHAR(50)                    not null,
NAME_KEY             VARCHAR(50),
SHORTNAME            VARCHAR(2),
ISOCODE              VARCHAR(10),
MAILFILE             VARCHAR(255),
MAILIMAGEPATH        VARCHAR(255),
EXPDOCFILE           VARCHAR(255),
DELDOCFILE           VARCHAR(255),
HELPFILE             VARCHAR(255),
constraint PK_LANGUAGES primary key (LANGUAGEID)
);


/*==============================================================*/
/* Table: LANGUAGEPACKS                                         */
/*==============================================================*/
create table LANGUAGEPACKS (
LANGPACKID           INTEGER                        not null,
COUNTRYCODE          VARCHAR(2)                     not null,  
NAME                 VARCHAR(50)                    not null,
NAME_KEY             VARCHAR(50),
DESCRIPTION          VARCHAR(50),
DESCR_KEY            VARCHAR(50),
CLASSNAME            VARCHAR(50)                    not null, 
CLASSPATH            VARCHAR(255)                   not null,
ENABLED              integer,
constraint PK_LANGUAGEPACKS primary key (LANGPACKID)
);


/*==============================================================*/
/* Table: PERMCONTEXTS                                           */
/*==============================================================*/
create table PERMCONTEXTS (
PERMCTXID            INTEGER                        not null,
NAME                 VARCHAR(50)                    not null,
NAME_KEY             VARCHAR(50),
DESCRIPTION          VARCHAR(100),
DESCR_KEY            VARCHAR(100),
constraint PK_PERMCONTEXTS primary key (PERMCTXID)
);



/*==============================================================*/
/* Table: PERMISSIONS                                           */
/*==============================================================*/
create table PERMISSIONS (
PERMISSIONID         INTEGER                        not null,
CONTEXT              VARCHAR(20)                    not null,
TOKEN                VARCHAR(1)                     not null,
NUMVALUE             INTEGER                        not null,
PRINTSTRING          VARCHAR(50),
PRINTSTRING_KEY      VARCHAR(50),
DESCRIPTION          VARCHAR(100),
DESCR_KEY            VARCHAR(100),
ENABLED              INTEGER,
constraint PK_PERMISSIONS primary key (PERMISSIONID)
);


/*==============================================================*/
/* Index: INDEX_15                                              */
/*==============================================================*/
create unique asc index INDEX_15 on PERMISSIONS (
CONTEXT,
TOKEN,
NUMVALUE
);

/*==============================================================*/
/* Table: SEARCHENGINES                                         */
/*==============================================================*/
create table SEARCHENGINES (
SEARCHENGINEID       INTEGER                        not null,
NAME                 VARCHAR(20)                    not null,
URL                  VARCHAR(100)                   not null,
PARAMETERS           VARCHAR(100),
DESCRIPTION          VARCHAR(50),
constraint PK_SEARCHENGINES primary key (SEARCHENGINEID)
);

/*==============================================================*/
/* Table: SYSPARAMETERS                                         */
/*==============================================================*/
create table SYSPARAMETERS (
SYSPARAMETERID       INTEGER                        not null,
CONTEXT              VARCHAR(50)                    not null, 
NAME                 VARCHAR(50)                    not null,
NAME_KEY             VARCHAR(50),
VALUESTRING          VARCHAR(50),
DESCRIPTION          VARCHAR(50),
DESCR_KEY            VARCHAR(50),
ALLOWNULL            INTEGER                        not null,
READONLY             INTEGER                        not null,
HIDE                 INTEGER                        not null,
DATATYPE             INTEGER                        not null, 
constraint PK_SYSPARAMETERS primary key (SYSPARAMETERID)
);


/*==============================================================*/
/* Index: INDEX_13                                              */
/*==============================================================*/
create unique asc index INDEX_13 on SYSPARAMETERS (
CONTEXT,
NAME,
VALUESTRING
);


/*==============================================================*/
/* Table: USERGROUPS                                            */
/*==============================================================*/
create table USERGROUPS (
/*USERGROUPID          INTEGER                        not null,*/
GROUPID              INTEGER                        not null,
USERID               INTEGER                        not null,
CREATED              TIMESTAMP,
CREATORID            INTEGER,
STANDARDGROUP        INTEGER
/*constraint PK_USERGROUPS primary key (USERGROUPID)*/
);


/*==============================================================*/
/* Index: INDEX_10                                              */
/*==============================================================*/
create unique asc index INDEX_10 on USERGROUPS (
GROUPID,
USERID
);

/*==============================================================*/
/* Table: USERREGISTEREDCATEGORIES                              */
/*==============================================================*/
create table USERREGISTEREDCATEGORIES (
/*USERREGCATID         INTEGER                        not null,*/
USERID               INTEGER                        not null,
CATEGORYID           INTEGER                        not null,
INCLSUBDIRS          INTEGER 
);


/*==============================================================*/
/* Index: INDEX_31                                              */
/*==============================================================*/
create asc index INDEX_31 on USERREGISTEREDCATEGORIES (
USERID,
CATEGORYID
);


/*==============================================================*/
/* Table: USERREGISTEREDCATEGORIES                              */
/*==============================================================*/
create table GROUPREGISTEREDCATEGORIES (
GROUPID              INTEGER                        not null,
CATEGORYID           INTEGER                        not null,
INCLSUBDIRS          INTEGER 
);

/*==============================================================*/
/* Index: INDEX_30                                              */
/*==============================================================*/
create asc index INDEX_30 on GROUPREGISTEREDCATEGORIES (
GROUPID,
CATEGORYID
);


/*==============================================================*/
/* Index: INDEX_6                                               */
/*==============================================================*/
create unique asc index INDEX_6 on USERREGISTEREDCATEGORIES (
USERID,
CATEGORYID
);

/*==============================================================*/
/* Table: USERREGISTEREDKEYWORDS                                */
/*==============================================================*/
create table USERREGISTEREDKEYWORDS (
USERID               INTEGER                        not null,
TERM                 VARCHAR(255),                   
TERMDESCRIPTOR       VARCHAR(255)                   not null,
WEIGHT               DOUBLE PRECISION,
INTERNAL             INTEGER
);


/*==============================================================*/
/* Table: USERREGISTEREDDOCUMENTS                               */
/*==============================================================*/
create table USERREGISTEREDDOCUMENTS (
USERID               INTEGER                        not null,
DOCUMENTID           INTEGER                        not null,
THRESHOLD            INTEGER
);

/*==============================================================*/
/* Index: INDEX_32                                              */
/*==============================================================*/
create unique asc index INDEX_32 on USERREGISTEREDDOCUMENTS (
USERID,
DOCUMENTID
);

/*==============================================================*/
/* Index: INDEX_7                                               */
/*==============================================================*/
/* jp: does not work: interbase says:key size too long
create asc index INDEX_7 on USERREGISTEREDKEYWORDS (
USERID,
TERMDESCRIPTOR
);
*/

/*==============================================================*/
/* Table: USERDOCMAILS                                          */
/*==============================================================*/
create table USERDOCMAILS (
UDMID                INTEGER                        not null,
USERID               INTEGER                        not null,
DOCUMENTID           INTEGER                        not null,
RELDOCID             INTEGER,
SENDON               TIMESTAMP                      not null,
PROCESSED            INTEGER,
WASSENDAT            TIMESTAMP,
constraint PK_USERDOCMAILS primary key (UDMID)
);

/*==============================================================*/
/* Index: INDEX_22                                              */
/*==============================================================*/
create unique asc index INDEX_22 on USERDOCMAILS (
USERID,
DOCUMENTID
);

/*==============================================================*/
/* Table: USERKEYMAILS                                          */
/*==============================================================*/
/*
create table USERKEYMAILS (
UKMID                INTEGER                        not null,
USERID               INTEGER                        not null,
KEYWORDID            INTEGER                        not null,
SENDON               TIMESTAMP                      not null,
PROCESSED            INTEGER,
WASSENDAT            TIMESTAMP,
constraint PK_USERKEYMAILS primary key (UKMID)
);
*/

/*==============================================================*/
/* Index: INDEX_23                                              */
/*==============================================================*/
/*
create unique asc index INDEX_23 on USERKEYMAILS (
USERID,
KEYWORDID
);
*/

/*==============================================================*/
/* Table: USERS                                                 */
/*==============================================================*/
create table USERS (
USERID               INTEGER                        not null,
USERNAME             VARCHAR(20)                    not null,
FIRSTNAME            VARCHAR(50),
LASTNAME             VARCHAR(50),
TITLE                VARCHAR(50),
PASSWD               VARCHAR(255)                    not null,
PASSWDCHANGED        INTEGER,
PASSWDCHANGEDTS      TIMESTAMP,
EMAIL                VARCHAR(50),
SHOWEMAIL            INTEGER,
ENABLEMESSAGING      INTEGER,
MESSAGINGTIMEPERIOD  INTEGER,
COMPANY              VARCHAR(50),
DEPARTMENT           VARCHAR(50),
ZIP                  VARCHAR(10),
CITY                 VARCHAR(50),
STREET               VARCHAR(50),
PHONE                VARCHAR(20),
FAX                  VARCHAR(20),
MOBILE               VARCHAR(20),
HOMEPAGEURL          VARCHAR(100),
CONTACTURL           VARCHAR(100),
ADMINPRIVILEGES      INTEGER,
CREATEGROUPS         INTEGER,
LANGUAGEID           INTEGER,
ACCOUNTVALID         INTEGER,
VALIDFROM            TIMESTAMP,
VALIDUNTIL           TIMESTAMP,
CREATED              TIMESTAMP,
CREATORID            INTEGER,
LASTCHANGED          TIMESTAMP,
LASTCHANGERID        INTEGER,
DYNATTRSID           INTEGER,
TEMPLATEID           INTEGER,
constraint PK_USERS primary key (USERID)
);

/*==============================================================*/
/* Index: INDEX_9                                               */
/*==============================================================*/
create unique asc index INDEX_9 on USERS (
USERNAME
);

/*==============================================================*/
/* Table: ADDUSERATTRS                                          */
/*==============================================================*/
create table ADDUSERATTRS (
USERATTRID           INTEGER                        not null,
NAME                 VARCHAR(255)                   not null,
NAME_KEY             VARCHAR(50),
DESCRIPTION          VARCHAR(255),
DESCR_KEY            VARCHAR(50),
ALLOWNULL            INTEGER,
DEFAULTVALUE         VARCHAR(255),
constraint PK_ADDUSERATTRS primary key (USERATTRID)
);


/*==============================================================*/
/* Table: ADDUSERATTRVALUES                                     */
/*==============================================================*/
create table ADDUSERATTRVALUES (
USERID               INTEGER                        not null, 
USERATTRID           INTEGER                        not null,   
VALUESTRING          VARCHAR(255)
);

/*==============================================================*/
/* Index: INDEX_25                                              */
/*==============================================================*/
create unique asc index INDEX_25 on ADDUSERATTRVALUES (
USERID,
USERATTRID
);

/*==============================================================*/
/* Table: TEMPLATES                                             */
/*==============================================================*/
create table TEMPLATES (
TEMPLATEID           INTEGER                        not null, 
NAME                 VARCHAR(50)                    not null,   
PATH                 VARCHAR(255)                   not null,
DESCRIPTION          VARCHAR(255),
PREVIEWPIC           VARCHAR(255),
ENABLED              INTEGER,
constraint PK_TEMPLATES primary key (TEMPLATEID)
);

/*==============================================================*/
/* Table: MSGTIMEPERIODS                                        */
/*==============================================================*/
create table MSGTIMEPERIODS (
PERIODID             INTEGER                        not null, 
PERIOD               FLOAT                          not null,   
DESCRIPTION          VARCHAR(255),
constraint PK_PERIODID primary key (PERIODID)
);


alter table ADDITIONALDOCUMENTFORMATS
   add constraint FK_DOCTYPES2 foreign key (DOCTYPEID)
      references DOCUMENTTYPES (DOCTYPEID);

alter table ADDITIONALDOCUMENTFORMATS
   add constraint FK_DOCUMENTS5 foreign key (DOCUMENTID)
      references DOCUMENTS (DOCUMENTID);

alter table ALLOWEDDOCUMENTTYPES
   add constraint FK_DOCTYPES foreign key (DOCTYPEID)
      references DOCUMENTTYPES (DOCTYPEID);

alter table ALLOWEDDOCUMENTTYPES
   add constraint FK_CATEGORIES4 foreign key (CATEGORYID)
      references CATEGORIES (CATEGORYID);

alter table CATEGORIES
   add constraint FK_CATEGORIES6 foreign key (PARENTCATEGORYID)
      references CATEGORIES (CATEGORYID);

/*alter table CATEGORIES                                */
/*   add constraint FK_CATEGORYACLS foreign key (ACLID) */
/*     references CATEGORYACLS (ACLID);                 */

alter table CATEGORYACLS
   add constraint FK_PERMISSIONS2 foreign key (PERMISSIONID)
      references PERMISSIONS (PERMISSIONID);

alter table CATEGORYACLS
   add constraint FK_ACLTYPES2 foreign key (ACLTYPEID)
      references ACLTYPES (ACLTYPEID);

alter table CATEGORYDOCUMENTS
   add constraint FK_CATEGORIES foreign key (CATEGORYID)
      references CATEGORIES (CATEGORYID);

/*alter table CATEGORYDOCUMENTS*/
/*   add constraint FK_DOCUMENTS2 foreign key (DOCUMENTID)*/
/*      references DOCUMENTS (DOCUMENTID);*/

alter table CATEGORYKEYWORDS
   add constraint FK_CATEGORIES3 foreign key (CATEGORYID)
     references CATEGORIES (CATEGORYID);

/*alter table CATEGORYKEYWORDS*/
/*   add constraint FK_KEYWORDS2 foreign key (KEYWORDID)*/
/*      references KEYWORDS (KEYWORDID);*/

alter table DOCUMENTACLS
   add constraint FK_ACLTYPES foreign key (ACLTYPEID)
      references ACLTYPES (ACLTYPEID);

alter table DOCUMENTACLS
   add constraint FK_PERMISSIONS foreign key (PERMISSIONID)
      references PERMISSIONS (PERMISSIONID);

/*alter table DOCUMENTKEYWORDS*/
/*   add constraint FK_DOCUMENTS foreign key (DOCUMENTID)*/
/*      references DOCUMENTS (DOCUMENTID);*/

/*alter table DOCUMENTKEYWORDS*/
/*   add constraint FK_KEYWORDS foreign key (KEYWORDID)*/
/*      references KEYWORDS (KEYWORDID);*/

/*alter table DOCUMENTS                                  */
/*   add constraint FK_DOCUMENTACLS foreign key (ACLID)  */
/*      references DOCUMENTACLS (ACLID);                 */

/*alter table DOCUMENTS                                   */
/*   add constraint FK_DOCUMENTS4 foreign key (PREDOCID)  */
/*      references DOCUMENTS (DOCUMENTID);                */

alter table DOCUMENTS
   add constraint FK_DOCUMENTSTATI foreign key (STATUS)
      references DOCUMENTSTATI (STATUS);

alter table DOCUMENTS
   add constraint FK_DOCUMENTCLASSES foreign key (DOCCLASSID)
      references DOCUMENTCLASSES (DOCCLASSID);

alter table DOCUMENTS
   add constraint FK_DOCUMENTFLAGS foreign key (FLAG)
      references DOCUMENTFLAGS (FLAG);

alter table GROUPACLS
   add constraint FK_PERMISSIONS4 foreign key (PERMISSIONID)
      references PERMISSIONS (PERMISSIONID);

alter table GROUPACLS
   add constraint FK_ACLTYPES3 foreign key (ACLTYPEID)
      references ACLTYPES (ACLTYPEID);

/*alter table GROUPS*/
/*   add constraint FK_GROUPACLS foreign key (ACLID)*/
/*      references GROUPACLS (ACLID);*/

alter table USERGROUPS
   add constraint FK_USERS foreign key (USERID)
      references USERS (USERID);

alter table USERGROUPS
   add constraint FK_GROUPS foreign key (GROUPID)
      references GROUPS (GROUPID);

alter table USERREGISTEREDCATEGORIES
   add constraint FK_USERS3 foreign key (USERID)
      references USERS (USERID);

alter table USERREGISTEREDCATEGORIES
   add constraint FK_CATEGORIES2 foreign key (CATEGORYID)
      references CATEGORIES (CATEGORYID);

alter table USERREGISTEREDKEYWORDS
   add constraint FK_USERS2 foreign key (USERID)
      references USERS (USERID);

/*alter table USERREGISTEREDKEYWORDS*/
/*   add constraint FK_KEYWORDS3 foreign key (KEYWORDID)*/
/*      references KEYWORDS (KEYWORDID);*/

alter table DOCUMENTRELATIONS
   add constraint FK_DOCUMENTS6 foreign key (DOCID)
      references DOCUMENTS (DOCUMENTID);

alter table DOCUMENTRELATIONS
   add constraint FK_DOCUMENTS7 foreign key (RELDOCID)
      references DOCUMENTS (DOCUMENTID);


