summaryrefslogtreecommitdiff
path: root/rt/etc/schema.Sybase
diff options
context:
space:
mode:
Diffstat (limited to 'rt/etc/schema.Sybase')
-rw-r--r--rt/etc/schema.Sybase444
1 files changed, 444 insertions, 0 deletions
diff --git a/rt/etc/schema.Sybase b/rt/etc/schema.Sybase
new file mode 100644
index 0000000..67a411d
--- /dev/null
+++ b/rt/etc/schema.Sybase
@@ -0,0 +1,444 @@
+# {{{ Attachments
+
+CREATE TABLE rt3.Attachments (
+ id numeric(38,0) identity,
+ TransactionId integer NOT NULL ,
+ Parent integer NOT NULL ,
+ MessageId varchar(160) NULL ,
+ Subject varchar(255) NULL ,
+ Filename varchar(255) NULL ,
+ ContentType varchar(80) NULL ,
+ ContentEncoding varchar(80) NULL ,
+ Content TEXT NULL ,
+ Headers TEXT NULL ,
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ PRIMARY KEY (id)
+) ;
+
+CREATE INDEX Attachments1 ON Attachments (Parent) ;
+CREATE INDEX Attachments2 ON Attachments (TransactionId) ;
+CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
+# }}}
+
+# {{{ Queues
+CREATE TABLE rt3.Queues (
+ id numeric(38,0) identity,
+ Name varchar(200) NOT NULL ,
+ Description varchar(255) NULL ,
+ CorrespondAddress varchar(120) NULL ,
+ CommentAddress varchar(120) NULL ,
+ InitialPriority integer NOT NULL ,
+ FinalPriority integer NOT NULL ,
+ DefaultDueIn integer NOT NULL ,
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ LastUpdatedBy integer NOT NULL ,
+ LastUpdated DATETIME NULL ,
+ Disabled numeric(1) NOT NULL ,
+ PRIMARY KEY (id)
+) ;
+CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
+CREATE INDEX Queues2 ON Queues (Disabled) ;
+
+# }}}
+
+# {{{ Links
+
+CREATE TABLE rt3.Links (
+ id numeric(38,0) identity,
+ Base varchar(240) NULL ,
+ Target varchar(240) NULL ,
+ Type varchar(20) NOT NULL ,
+ LocalTarget integer NOT NULL ,
+ LocalBase integer NOT NULL ,
+ LastUpdatedBy integer NOT NULL ,
+ LastUpdated DATETIME NULL ,
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ PRIMARY KEY (id)
+) ;
+
+CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type) ;
+CREATE INDEX Links2 ON Links (Base, Type) ;
+CREATE INDEX Links3 ON Links (Target, Type) ;
+CREATE INDEX Links4 ON Links(Type,LocalBase);
+
+# }}}
+
+# {{{ Principals
+
+CREATE TABLE rt3.Principals (
+ id numeric(38,0) identity,
+ PrincipalType VARCHAR(16) not null,
+ ObjectId integer, Disabled numeric(1) NOT NULL ,
+ PRIMARY KEY (id)
+) ;
+
+CREATE INDEX Principals2 ON Principals (ObjectId);
+
+# }}}
+
+# {{{ Groups
+
+CREATE TABLE rt3.Groups (
+ id numeric(38,0) identity,
+ Name varchar(200) NULL ,
+ Description varchar(255) NULL ,
+ Domain varchar(64),
+ Type varchar(64),
+ Instance integer,
+ PRIMARY KEY (id)
+) ;
+
+CREATE INDEX Groups1 ON Groups (Domain,Instance,Type,id);
+CREATE INDEX Groups2 On Groups (Type, Instance, Domain);
+
+# }}}
+
+# {{{ ScripConditions
+
+CREATE TABLE rt3.ScripConditions (
+ id numeric(38,0) identity,
+ Name varchar(200) NULL ,
+ Description varchar(255) NULL ,
+ ExecModule varchar(60) NULL ,
+ Argument varchar(255) NULL ,
+ ApplicableTransTypes varchar(60) NULL ,
+
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ LastUpdatedBy integer NOT NULL ,
+ LastUpdated DATETIME NULL ,
+ PRIMARY KEY (id)
+) ;
+
+# }}}
+
+# {{{ Transactions
+CREATE TABLE rt3.Transactions (
+ id numeric(38,0) identity,
+ EffectiveTicket integer NOT NULL ,
+ Ticket integer NOT NULL ,
+ TimeTaken integer NOT NULL ,
+ Type varchar(20) NULL ,
+ Field varchar(40) NULL ,
+ OldValue varchar(255) NULL ,
+ NewValue varchar(255) NULL ,
+ Data varchar(255) NULL ,
+
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ PRIMARY KEY (id)
+) ;
+CREATE INDEX Transactions1 ON Transactions (Ticket);
+CREATE INDEX Transactions2 ON Transactions (EffectiveTicket);
+
+# }}}
+
+# {{{ Scrips
+
+CREATE TABLE rt3.Scrips (
+ id numeric(38,0) identity,
+ Description varchar(255),
+ ScripCondition integer NOT NULL ,
+ ScripAction integer NOT NULL ,
+ ConditionRules text NULL ,
+ ActionRules text NULL ,
+ CustomIsApplicableCode text NULL ,
+ CustomPrepareCode text NULL ,
+ CustomCommitCode text NULL ,
+ Stage varchar(32) NULL ,
+ Queue integer NOT NULL ,
+ Template integer NOT NULL ,
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ LastUpdatedBy integer NOT NULL ,
+ LastUpdated DATETIME NULL ,
+ PRIMARY KEY (id)
+) ;
+
+# }}}
+
+# {{{ ACL
+CREATE TABLE rt3.ACL (
+ id numeric(38,0) identity,
+ PrincipalType varchar(25) NOT NULL, #"User" "Group", "Owner", "Cc" "AdminCc", "Requestor", "Requestor"
+
+ PrincipalId integer NOT NULL , #Foreign key to principals
+ RightName varchar(25) NOT NULL ,
+ ObjectType varchar(25) NOT NULL ,
+ ObjectId integer NOT NULL ,
+ DelegatedBy integer NOT NULL , #foreign key to principals with a userid
+ DelegatedFrom integer NOT NULL , #foreign key to ACL
+ PRIMARY KEY (id)
+) ;
+
+CREATE INDEX ACL1 on ACL(RightName, ObjectType, ObjectId,PrincipalType,PrincipalId);
+
+# }}}
+
+# {{{ GroupMembers
+
+CREATE TABLE rt3.GroupMembers (
+ id numeric(38,0) identity,
+ GroupId integer NOT NULL ,
+ MemberId integer NOT NULL , #Foreign key to Principals
+ PRIMARY KEY (id)
+) ;
+CREATE UNIQUE INDEX GroupMembers1 on GroupMembers (GroupId, MemberId);
+
+
+# }}}
+
+# {{{ GroupMembersCache
+
+CREATE TABLE rt3.CachedGroupMembers (
+ id numeric(38,0) identity,
+ GroupId int, # foreign key to Principals
+ MemberId int, # foreign key to Principals
+ Via int, #foreign key to CachedGroupMembers. (may point to $self->id)
+ ImmediateParentId int, #foreign key to prinicpals.
+ # this points to the group that the member is
+ # a member of, for ease of deletes.
+ Disabled numeric(1) NOT NULL , # if this cached group member is a member of this group by way of a disabled
+ # group or this group is disabled, this will be set to 1
+ # this allows us to not find members of disabled subgroups when listing off
+ # group members recursively.
+ # Also, this allows us to have the ACL system elide members of disabled groups
+ PRIMARY KEY (id)
+) ;
+
+CREATE INDEX DisGrouMem on CachedGroupMembers (GroupId,MemberId,Disabled);
+CREATE INDEX GrouMem on CachedGroupMembers (GroupId,MemberId);
+
+# }}}
+
+# {{{ Users
+
+CREATE TABLE rt3.Users (
+ id numeric(38,0) identity,
+ Name varchar(200) NOT NULL ,
+ Password varchar(40) NULL ,
+ Comments text NULL ,
+ Signature text NULL ,
+ EmailAddress varchar(120) NULL ,
+ FreeformContactInfo text NULL ,
+ Organization varchar(200) NULL ,
+ RealName varchar(120) NULL ,
+ NickName varchar(16) NULL ,
+ Lang varchar(16) NULL ,
+ EmailEncoding varchar(16) NULL ,
+ WebEncoding varchar(16) NULL ,
+ ExternalContactInfoId varchar(100) NULL ,
+ ContactInfoSystem varchar(30) NULL ,
+ ExternalAuthId varchar(100) NULL ,
+ AuthSystem varchar(30) NULL ,
+ Gecos varchar(16) NULL ,
+ HomePhone varchar(30) NULL ,
+ WorkPhone varchar(30) NULL ,
+ MobilePhone varchar(30) NULL ,
+ PagerPhone varchar(30) NULL ,
+ Address1 varchar(200) NULL ,
+ Address2 varchar(200) NULL ,
+ City varchar(100) NULL ,
+ State varchar(100) NULL ,
+ Zip varchar(16) NULL ,
+ Country varchar(50) NULL ,
+ Timezone varchar(50) NULL ,
+ PGPKey text NULL,
+
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ LastUpdatedBy integer NOT NULL ,
+ LastUpdated DATETIME NULL ,
+ PRIMARY KEY (id)
+) ;
+
+
+CREATE UNIQUE INDEX Users1 ON Users (Name) ;
+CREATE INDEX Users2 ON Users (Name);
+CREATE INDEX Users3 ON Users (id, EmailAddress);
+CREATE INDEX Users4 ON Users (EmailAddress);
+
+
+# }}}
+
+# {{{ Tickets
+
+CREATE TABLE rt3.Tickets (
+ id numeric(38,0) identity,
+ EffectiveId integer NOT NULL ,
+ Queue integer NOT NULL ,
+ Type varchar(16) NULL ,
+ IssueStatement integer NOT NULL ,
+ Resolution integer NOT NULL ,
+ Owner integer NOT NULL ,
+ Subject varchar(200) NULL,
+ InitialPriority integer NOT NULL ,
+ FinalPriority integer NOT NULL ,
+ Priority integer NOT NULL ,
+ TimeEstimated integer NOT NULL ,
+ TimeWorked integer NOT NULL ,
+ Status varchar(10) NULL ,
+ TimeLeft integer NOT NULL ,
+ Told DATETIME NULL ,
+ Starts DATETIME NULL ,
+ Started DATETIME NULL ,
+ Due DATETIME NULL ,
+ Resolved DATETIME NULL ,
+
+
+ LastUpdatedBy integer NOT NULL ,
+ LastUpdated DATETIME NULL ,
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ Disabled numeric(1) NOT NULL ,
+ PRIMARY KEY (id)
+) ;
+
+CREATE INDEX Tickets1 ON Tickets (Queue, Status) ;
+CREATE INDEX Tickets2 ON Tickets (Owner) ;
+CREATE INDEX Tickets3 ON Tickets (EffectiveId) ;
+CREATE INDEX Tickets4 ON Tickets (id, Status) ;
+CREATE INDEX Tickets5 ON Tickets (id, EffectiveId) ;
+CREATE INDEX Tickets6 ON Tickets (EffectiveId, Type) ;
+
+# }}}
+
+# {{{ ScripActions
+
+CREATE TABLE rt3.ScripActions (
+ id numeric(38,0) identity,
+ Name varchar(200) NULL ,
+ Description varchar(255) NULL ,
+ ExecModule varchar(60) NULL ,
+ Argument varchar(255) NULL ,
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ LastUpdatedBy integer NOT NULL ,
+ LastUpdated DATETIME NULL ,
+ PRIMARY KEY (id)
+) ;
+
+# }}}
+
+# {{{ Templates
+
+CREATE TABLE rt3.Templates (
+ id numeric(38,0) identity,
+ Queue integer NOT NULL ,
+ Name varchar(200) NOT NULL ,
+ Description varchar(255) NULL ,
+ Type varchar(16) NULL ,
+ Language varchar(16) NULL ,
+ TranslationOf integer NOT NULL ,
+ Content text NULL ,
+ LastUpdated DATETIME NULL ,
+ LastUpdatedBy integer NOT NULL ,
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ PRIMARY KEY (id)
+) ;
+
+# }}}
+
+# {{{ TicketCustomFieldValues
+
+CREATE TABLE rt3.TicketCustomFieldValues (
+ id numeric(38,0) identity,
+ Ticket int NOT NULL ,
+ CustomField int NOT NULL ,
+ Content varchar(255) NULL ,
+
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ LastUpdatedBy integer NOT NULL ,
+ LastUpdated DATETIME NULL ,
+ PRIMARY KEY (id)
+) ;
+
+CREATE INDEX TicketCustomFieldValues1 ON TicketCustomFieldValues (CustomField,Ticket,Content);
+CREATE INDEX TicketCustomFieldValues2 ON TicketCustomFieldValues (CustomField,Ticket);
+
+# }}}
+
+# {{{ CustomFields
+
+CREATE TABLE rt3.CustomFields (
+ id numeric(38,0) identity,
+ Name varchar(200) NULL ,
+ Type varchar(200) NULL ,
+ Queue integer NOT NULL ,
+ Description varchar(255) NULL ,
+ SortOrder integer NOT NULL ,
+
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ LastUpdatedBy integer NOT NULL ,
+ LastUpdated DATETIME NULL ,
+ Disabled numeric(1) NOT NULL ,
+ PRIMARY KEY (id)
+) ;
+
+CREATE INDEX CustomFields1 on CustomFields (Disabled, Queue);
+
+
+# }}}
+
+# {{{ CustomFieldValues
+
+CREATE TABLE rt3.CustomFieldValues (
+ id numeric(38,0) identity,
+ CustomField int NOT NULL ,
+ Name varchar(200) NULL ,
+ Description varchar(255) NULL ,
+ SortOrder integer NOT NULL ,
+
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ LastUpdatedBy integer NOT NULL ,
+ LastUpdated DATETIME NULL ,
+ PRIMARY KEY (id)
+) ;
+
+CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
+
+# }}}
+
+
+# {{{ Attributes
+
+CREATE TABLE rt3.Attributes (
+ id numeric(38,0) identity,
+ Name varchar(255) NULL ,
+ Description varchar(255) NULL ,
+ Content text,
+ ContentType varchar(16),
+ ObjectType varchar(64),
+ ObjectId integer, # foreign key to anything
+ Creator integer NOT NULL ,
+ Created DATETIME NULL ,
+ LastUpdatedBy integer NOT NULL ,
+ LastUpdated DATETIME NULL ,
+ PRIMARY KEY (id)
+) ;
+
+CREATE INDEX Attributes1 on Attributes(Name);
+CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
+
+# }}}
+
+# {{{ Sessions
+
+# sessions is used by Apache::Session to keep sessions in the database.
+# We should have a reaper script somewhere.
+
+CREATE TABLE rt3.sessions (
+ id char(32) NOT NULL,
+ a_session TEXT,
+ LastUpdated DATETIME,
+ PRIMARY KEY (id)
+);
+
+# }}}