import rt 3.4.6
[freeside.git] / rt / etc / schema.Oracle
1
2 CREATE SEQUENCE ATTACHMENTS_seq;
3 CREATE TABLE Attachments (
4         id              NUMBER(11,0) 
5                         CONSTRAINT Attachments_Key PRIMARY KEY,
6         TransactionId   NUMBER(11,0) NOT NULL,
7         Parent          NUMBER(11,0) DEFAULT 0 NOT NULL, 
8         MessageId       VARCHAR2(160),
9         Subject         VARCHAR2(255),
10         Filename        VARCHAR2(255),
11         ContentType     VARCHAR2(80),
12         ContentEncoding VARCHAR2(80),
13         Content         CLOB,
14         Headers         CLOB,
15         Creator         NUMBER(11,0) DEFAULT 0 NOT NULL,
16         Created         DATE
17 );
18 CREATE INDEX Attachments2 ON Attachments (TransactionId);
19 CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId);
20
21
22 CREATE SEQUENCE QUEUES_seq;
23 CREATE TABLE Queues (
24         id                      NUMBER(11,0) 
25                 CONSTRAINT Queues_Key PRIMARY KEY,
26         Name                    VARCHAR2(200) CONSTRAINT Queues_Name_Unique UNIQUE NOT NULL,
27         Description             VARCHAR2(255),
28         CorrespondAddress       VARCHAR2(120),
29         CommentAddress          VARCHAR2(120),
30         InitialPriority         NUMBER(11,0) DEFAULT 0 NOT NULL,
31         FinalPriority           NUMBER(11,0) DEFAULT 0 NOT NULL,
32         DefaultDueIn            NUMBER(11,0) DEFAULT 0 NOT NULL,
33         Creator                 NUMBER(11,0) DEFAULT 0 NOT NULL,
34         Created                 DATE,
35         LastUpdatedBy           NUMBER(11,0) DEFAULT 0 NOT NULL,
36         LastUpdated             DATE,
37         Disabled                NUMBER(11,0) DEFAULT 0 NOT NULL
38 );
39  CREATE  INDEX Queues1 ON Queues (lower(Name));
40 CREATE INDEX Queues2 ON Queues (Disabled);
41
42
43 CREATE SEQUENCE LINKS_seq;
44 CREATE TABLE Links (
45         id              NUMBER(11,0) 
46                 CONSTRAINT Links_Key PRIMARY KEY,
47         Base            VARCHAR2(240),
48         Target          VARCHAR2(240),
49         Type            VARCHAR2(20) NOT NULL,
50         LocalTarget     NUMBER(11,0) DEFAULT 0 NOT NULL,
51         LocalBase       NUMBER(11,0) DEFAULT 0 NOT NULL,
52         LastUpdatedBy   NUMBER(11,0) DEFAULT 0 NOT NULL,
53         LastUpdated     DATE,
54         Creator         NUMBER(11,0) DEFAULT 0 NOT NULL,
55         Created         DATE
56 );
57 CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type);
58 CREATE INDEX Links2 ON Links (Base, Type);
59 CREATE INDEX Links3 ON Links (Target, Type);
60 CREATE INDEX Links4 ON Links(Type,LocalBase);
61
62
63 CREATE SEQUENCE PRINCIPALS_seq;
64 CREATE TABLE Principals (
65         id              NUMBER(11,0) 
66                 CONSTRAINT Principals_Key PRIMARY KEY,
67         PrincipalType   VARCHAR2(16),
68         ObjectId        NUMBER(11,0),
69         Disabled        NUMBER(11,0) DEFAULT 0 NOT NULL
70 );
71 CREATE UNIQUE  INDEX Principals2 ON Principals (ObjectId);
72
73
74 CREATE SEQUENCE GROUPS_seq;
75 CREATE TABLE Groups (
76         id              NUMBER(11,0) 
77                 CONSTRAINT Groups_Key PRIMARY KEY,
78         Name            VARCHAR2(200),
79         Description     VARCHAR2(255),
80         Domain          VARCHAR2(64),
81         Type            VARCHAR2(64),
82         Instance        NUMBER(11,0) DEFAULT 0 -- NOT NULL
83 --      Instance        VARCHAR2(64)
84 );
85 CREATE INDEX Groups1 ON Groups (lower( Domain), Instance, lower(Type), id);
86 CREATE INDEX Groups2 ON Groups (lower(Type), Instance, lower(Domain));
87
88
89 CREATE SEQUENCE SCRIPCONDITIONS_seq;
90 CREATE TABLE ScripConditions (
91         id                      NUMBER(11, 0) 
92                 CONSTRAINT ScripConditions_Key PRIMARY KEY,
93         Name                    VARCHAR2(200),
94         Description             VARCHAR2(255),
95         ExecModule              VARCHAR2(60),
96         Argument                VARCHAR2(255),
97         ApplicableTransTypes    VARCHAR2(60),
98         Creator                 NUMBER(11,0) DEFAULT 0 NOT NULL,
99         Created                 DATE,
100         LastUpdatedBy           NUMBER(11,0) DEFAULT 0 NOT NULL,
101         LastUpdated             DATE
102 );
103
104
105 CREATE SEQUENCE TRANSACTIONS_seq;
106 CREATE TABLE Transactions (
107         id                      NUMBER(11,0) 
108                 CONSTRAINT Transactions_Key PRIMARY KEY,
109         ObjectType              VARCHAR2(255),
110         ObjectId                NUMBER(11,0) DEFAULT 0 NOT NULL,
111         TimeTaken               NUMBER(11,0) DEFAULT 0 NOT NULL,
112         Type                    VARCHAR2(20),
113         Field                   VARCHAR2(40),
114         OldValue                VARCHAR2(255),
115         NewValue                VARCHAR2(255),
116         ReferenceType           VARCHAR2(255),
117         OldReference            NUMBER(11,0),
118         NewReference            NUMBER(11,0),
119         Data                    VARCHAR2(255),
120         Creator                 NUMBER(11,0) DEFAULT 0 NOT NULL,
121         Created                 DATE
122 );
123 CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
124
125
126 CREATE SEQUENCE SCRIPS_seq;
127 CREATE TABLE Scrips (
128         id              NUMBER(11,0) 
129                 CONSTRAINT Scrips_Key PRIMARY KEY,      
130         Description     VARCHAR2(255),
131         ScripCondition  NUMBER(11,0) DEFAULT 0 NOT NULL,
132         ScripAction     NUMBER(11,0) DEFAULT 0 NOT NULL,
133         ConditionRules  CLOB,
134         ActionRules     CLOB,
135         CustomIsApplicableCode  CLOB,
136         CustomPrepareCode       CLOB,
137         CustomCommitCode        CLOB,
138         Stage           VARCHAR2(32),
139         Queue           NUMBER(11,0) DEFAULT 0 NOT NULL,
140         Template        NUMBER(11,0) DEFAULT 0 NOT NULL,
141         Creator         NUMBER(11,0) DEFAULT 0 NOT NULL,
142         Created         DATE,
143         LastUpdatedBy   NUMBER(11,0) DEFAULT 0 NOT NULL,
144         LastUpdated     DATE  
145 );
146
147
148 CREATE SEQUENCE ACL_seq;
149 CREATE TABLE ACL (
150         id              NUMBER(11,0) 
151                 CONSTRAINT ACL_Key PRIMARY KEY,
152         PrincipalType   VARCHAR2(25) NOT NULL,
153         PrincipalId     NUMBER(11,0) NOT NULL,
154         RightName       VARCHAR2(25) NOT NULL,
155         ObjectType      VARCHAR2(25) NOT NULL,
156         ObjectId        NUMBER(11,0) DEFAULT 0 NOT NULL,
157         DelegatedBy     NUMBER(11,0) DEFAULT 0 NOT NULL,
158         DelegatedFrom   NUMBER(11,0) DEFAULT 0 NOT NULL
159 );
160 CREATE INDEX ACL1 ON ACL(RightName, ObjectType, ObjectId, PrincipalType, PrincipalId);
161
162
163 CREATE SEQUENCE GROUPMEMBERS_seq;
164 CREATE TABLE GroupMembers (
165         id              NUMBER(11,0) 
166                 CONSTRAINT GroupMembers_Key PRIMARY KEY,
167         GroupId         NUMBER(11,0) DEFAULT 0 NOT NULL,
168         MemberId        NUMBER(11,0) DEFAULT 0 NOT NULL
169 );
170 CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers (GroupId, MemberId);
171
172
173 CREATE SEQUENCE CachedGroupMembers_seq;
174 CREATE TABLE CachedGroupMembers (
175         id              NUMBER(11,0) 
176                 CONSTRAINT CachedGroupMembers_Key PRIMARY KEY,
177         GroupId         NUMBER(11,0),
178         MemberId        NUMBER(11,0),
179         Via             NUMBER(11,0),
180         ImmediateParentId       NUMBER(11,0),
181         Disabled        NUMBER(11,0) DEFAULT 0 NOT NULL
182 );
183 CREATE INDEX DisGrouMem ON CachedGroupMembers (GroupId, MemberId, Disabled);
184 CREATE INDEX GrouMem ON CachedGroupMembers (GroupId, MemberId);
185
186
187 CREATE SEQUENCE USERS_seq;
188 CREATE TABLE Users (
189         id                      NUMBER(11,0) 
190                 CONSTRAINT Users_Key PRIMARY KEY,
191         Name                    VARCHAR2(200) CONSTRAINT Users_Name_Unique 
192                 unique  NOT NULL,
193         Password                VARCHAR2(40),
194         Comments                CLOB,
195         Signature               CLOB,
196         EmailAddress            VARCHAR2(120),
197         FreeFormContactInfo     CLOB,
198         Organization            VARCHAR2(200),
199         RealName                VARCHAR2(120),
200         NickName                VARCHAR2(16),
201         Lang                    VARCHAR2(16),
202         EmailEncoding           VARCHAR2(16),
203         WebEncoding             VARCHAR2(16),
204         ExternalContactInfoId   VARCHAR2(100),
205         ContactInfoSystem       VARCHAR2(30),
206         ExternalAuthId          VARCHAR2(100),
207         AuthSystem              VARCHAR2(30),
208         Gecos                   VARCHAR2(16),
209         HomePhone               VARCHAR2(30),
210         WorkPhone               VARCHAR2(30),
211         MobilePhone             VARCHAR2(30),
212         PagerPhone              VARCHAR2(30),
213         Address1                VARCHAR2(200),
214         Address2                VARCHAR2(200),
215         City                    VARCHAR2(100),
216         State                   VARCHAR2(100),
217         Zip                     VARCHAR2(16),
218         Country                 VARCHAR2(50),
219         Timezone                VARCHAR2(50),
220         PGPKey                  CLOB,
221         Creator                 NUMBER(11,0) DEFAULT 0 NOT NULL,
222         Created                 DATE,
223         LastUpdatedBy           NUMBER(11,0) DEFAULT 0 NOT NULL,
224         LastUpdated             DATE
225 );
226 -- CREATE UNIQUE INDEX Users1 ON Users (Name);
227
228 CREATE INDEX Users2 ON Users( LOWER(name));
229 CREATE INDEX Users4 ON Users (lower(EmailAddress));
230
231
232 CREATE SEQUENCE TICKETS_seq;
233 CREATE TABLE Tickets (
234        id                      NUMBER(11, 0) 
235                CONSTRAINT Tickets_Key PRIMARY KEY,
236         EffectiveId             NUMBER(11,0) DEFAULT 0 NOT NULL,
237         Queue                   NUMBER(11,0) DEFAULT 0 NOT NULL,
238         Type                    VARCHAR2(16),           
239         IssueStatement          NUMBER(11,0) DEFAULT 0 NOT NULL,
240         Resolution              NUMBER(11,0) DEFAULT 0 NOT NULL,
241         Owner                   NUMBER(11,0) DEFAULT 0 NOT NULL,
242         Subject                 VARCHAR2(200) DEFAULT '[no subject]', 
243         InitialPriority         NUMBER(11,0) DEFAULT 0 NOT NULL,
244         FinalPriority           NUMBER(11,0) DEFAULT 0 NOT NULL,
245         Priority                NUMBER(11,0) DEFAULT 0 NOT NULL,
246         TimeEstimated           NUMBER(11,0) DEFAULT 0 NOT NULL,
247         TimeWorked              NUMBER(11,0) DEFAULT 0 NOT NULL,
248         Status                  VARCHAR2(10),           
249         TimeLeft                NUMBER(11,0) DEFAULT 0 NOT NULL,
250         Told                    DATE,
251         Starts                  DATE,
252         Started                 DATE,
253         Due                     DATE,
254         Resolved                DATE,
255         LastUpdatedBy           NUMBER(11,0) DEFAULT 0 NOT NULL,
256         LastUpdated             DATE,
257         Creator                 NUMBER(11,0) DEFAULT 0 NOT NULL,
258         Created                 DATE,
259         Disabled                NUMBER(11,0) DEFAULT 0 NOT NULL
260 );
261 CREATE INDEX Tickets1 ON Tickets (Queue, Status);
262 CREATE INDEX Tickets2 ON Tickets (Owner);
263 CREATE INDEX Tickets4 ON Tickets (id, Status);
264 CREATE INDEX Tickets5 ON Tickets (id, EffectiveId);
265 CREATE INDEX Tickets6 ON Tickets (EffectiveId, Type);
266
267
268 CREATE SEQUENCE SCRIPACTIONS_seq;
269 CREATE TABLE ScripActions (
270   id            NUMBER(11,0) 
271                 CONSTRAINT ScripActions_Key PRIMARY KEY,
272   Name          VARCHAR2(200),
273   Description   VARCHAR2(255),
274   ExecModule    VARCHAR2(60),
275   Argument      VARCHAR2(255),
276   Creator       NUMBER(11,0) DEFAULT 0 NOT NULL,
277   Created       DATE,
278   LastUpdatedBy NUMBER(11,0) DEFAULT 0 NOT NULL,
279   LastUpdated   DATE
280 );
281
282
283 CREATE SEQUENCE TEMPLATES_seq;
284 CREATE TABLE Templates (
285         id              NUMBER(11,0) 
286                 CONSTRAINT Templates_Key PRIMARY KEY,
287         Queue           NUMBER(11,0) DEFAULT 0 NOT NULL,
288         Name            VARCHAR2(200) NOT NULL,
289         Description     VARCHAR2(255),
290         Type            VARCHAR2(16),
291         Language        VARCHAR2(16), 
292         TranslationOf   NUMBER(11,0) DEFAULT 0 NOT NULL,
293         Content         CLOB,
294         LastUpdated     DATE,
295         LastUpdatedBy   NUMBER(11,0) DEFAULT 0 NOT NULL,
296         Creator         NUMBER(11,0) DEFAULT 0 NOT NULL,
297         Created         DATE
298 );
299
300
301 CREATE SEQUENCE OBJECTCUSTOMFIELDS_seq;
302 CREATE TABLE ObjectCustomFields (
303         id              NUMBER(11,0)
304                  CONSTRAINT ObjectCustomFields_Key PRIMARY KEY,
305         CustomField       NUMBER(11,0)  NOT NULL,
306         ObjectId              NUMBER(11,0)  NOT NULL,
307         SortOrder       NUMBER(11,0) DEFAULT 0 NOT NULL,
308         Creator         NUMBER(11,0) DEFAULT 0 NOT NULL,
309         Created         DATE,
310         LastUpdatedBy   NUMBER(11,0) DEFAULT 0 NOT NULL,
311         LastUpdated     DATE
312 );
313
314
315 CREATE SEQUENCE OBJECTCUSTOMFIELDVALUES_seq;
316 CREATE TABLE ObjectCustomFieldValues (
317         id              NUMBER(11,0) 
318                 CONSTRAINT ObjectCustomFieldValues_Key PRIMARY KEY,
319         CustomField     NUMBER(11,0) NOT NULL,
320         ObjectType      VARCHAR2(25) NOT NULL,
321         ObjectId        NUMBER(11,0) DEFAULT 0 NOT NULL,
322         SortOrder       NUMBER(11,0) DEFAULT 0 NOT NULL,
323         Content         VARCHAR2(255),
324         LargeContent    CLOB,
325         ContentType     VARCHAR2(80),
326         ContentEncoding VARCHAR2(80),
327         Creator         NUMBER(11,0) DEFAULT 0 NOT NULL,
328         Created         DATE,
329         LastUpdatedBy   NUMBER(11,0) DEFAULT 0 NOT NULL,
330         LastUpdated     DATE,
331         Disabled        NUMBER(11,0) DEFAULT 0 NOT NULL
332 );
333
334 CREATE INDEX ObjectCustomFieldValues1 ON ObjectCustomFieldValues (Content); 
335 CREATE INDEX ObjectCustomFieldValues2 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId); 
336
337 CREATE SEQUENCE CUSTOMFIELDS_seq;
338 CREATE TABLE CustomFields (
339         id              NUMBER(11,0) 
340                 CONSTRAINT CustomFields_Key PRIMARY KEY,
341         Name            VARCHAR2(200),
342         Type            VARCHAR2(200),
343         MaxValues       NUMBER(11,0) DEFAULT 0 NOT NULL,
344         Pattern         VARCHAR2(255),
345         Repeated        NUMBER(11,0) DEFAULT 0 NOT NULL,
346         Description     VARCHAR2(255),
347         SortOrder       NUMBER(11,0) DEFAULT 0 NOT NULL,
348         LookupType      VARCHAR2(255),
349         Creator         NUMBER(11,0) DEFAULT 0 NOT NULL,
350         Created         DATE,
351         LastUpdatedBy   NUMBER(11,0) DEFAULT 0 NOT NULL,
352         LastUpdated     DATE,
353         Disabled        NUMBER(11,0) DEFAULT 0 NOT NULL
354 );
355
356
357 CREATE SEQUENCE CUSTOMFIELDVALUES_seq;
358 CREATE TABLE CustomFieldValues (
359         id              NUMBER(11,0) 
360                 CONSTRAINT CustomFieldValues_Key PRIMARY KEY,
361         CustomField     NUMBER(11,0),
362         Name            VARCHAR2(200),
363         Description     VARCHAR2(255),
364         SortOrder       NUMBER(11,0) DEFAULT 0 NOT NULL,
365         Creator         NUMBER(11,0) DEFAULT 0 NOT NULL,
366         Created         DATE,
367         LastUpdatedBy   NUMBER(11,0) DEFAULT 0 NOT NULL,
368         LastUpdated     DATE
369 );
370
371 CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
372
373 CREATE SEQUENCE ATTRIBUTES_seq;
374 CREATE TABLE Attributes (
375         id                      NUMBER(11,0) PRIMARY KEY,
376         Name                    VARCHAR2(255) NOT NULL,
377         Description             VARCHAR2(255),
378         Content         CLOB,
379     ContentType VARCHAR(16),
380         ObjectType      VARCHAR2(25) NOT NULL,
381         ObjectId        NUMBER(11,0) DEFAULT 0 NOT NULL,
382         Creator                 NUMBER(11,0) DEFAULT 0 NOT NULL,
383         Created                 DATE,
384         LastUpdatedBy           NUMBER(11,0) DEFAULT 0 NOT NULL,
385         LastUpdated             DATE
386 );
387
388 CREATE INDEX Attributes1 on Attributes(Name);
389 CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
390
391
392 CREATE TABLE sessions (
393         id              VARCHAR2(32) 
394                 CONSTRAINT Sessions_Key PRIMARY KEY,
395         a_session       CLOB,
396         LastUpdated     DATE
397 );
398