DataObjects/core.sql
[Pman.Core] / DataObjects / core.sql
index 10b5338..4ea894f 100644 (file)
@@ -10,9 +10,11 @@ CREATE TABLE `Companies` (
   `email` varchar(128)  default NULL,
   `id` int(11) NOT NULL auto_increment,
   `isOwner` int(11) default NULL,
-  PRIMARY KEY   (`id`),
-  KEY `Company_Name` (`name`)
+  PRIMARY KEY   (`id`)
+  
 ) ;
+ALTER TABLE `Company_Name` ADD INDEX name_lookup (`name`);
+
 
 alter table Companies change column isOwner isOwner int(11);
 ALTER TABLE Companies ADD COLUMN logo_id INT(11)  NOT NULL;
@@ -113,24 +115,24 @@ ALTER TABLE Groups CHANGE COLUMN type type int(11) default 0;
 CREATE TABLE `Office` (
   `id` int(11) NOT NULL auto_increment,
   `company_id` int(11) NOT NULL default '0',
-  `name` varchar(64) character set latin1 NOT NULL,
-  `address` text character set latin1 NOT NULL,
-  `phone` varchar(32) character set latin1 NOT NULL,
-  `fax` varchar(32) character set latin1 NOT NULL,
-  `email` varchar(128) character set latin1 NOT NULL,
-  `role` varchar(32) character set latin1 NOT NULL,
+  `name` varchar(64)  NOT NULL,
+  `address` text  NOT NULL,
+  `phone` varchar(32)  NOT NULL,
+  `fax` varchar(32)  NOT NULL,
+  `email` varchar(128)  NOT NULL,
+  `role` varchar(32)  NOT NULL,
   PRIMARY KEY  (`id`)
 );
 
 CREATE TABLE `Person` (
   `id` int(11) NOT NULL auto_increment,
   `office_id` int(11) default '0',
-  `name` varchar(128) character set latin1 NOT NULL,
-  `phone` varchar(32) character set latin1 NOT NULL,
-  `fax` varchar(32) character set latin1 NOT NULL,
-  `email` varchar(128) character set latin1 NOT NULL,
+  `name` varchar(128)  NOT NULL,
+  `phone` varchar(32)  NOT NULL,
+  `fax` varchar(32)  NOT NULL,
+  `email` varchar(128)  NOT NULL,
   `company_id` int(11) default '0',
-  `role` varchar(32) character set latin1 NOT NULL,
+  `role` varchar(32)  NOT NULL,
   `active` int(11) default NULL,
   `remarks` text NOT NULL,
   `passwd` varchar(64) NOT NULL,
@@ -149,7 +151,7 @@ ALTER TABLE Person ADD COLUMN action_type VARCHAR(32) DEFAULT '';
 ALTER TABLE Person ADD COLUMN action_type VARCHAR(32) default '';
 
 ALTER TABLE Person ADD COLUMN deleted_by INT(11) NOT NULL default 0 ;
-ALTER TABLE Person ADD COLUMN deleted_dt DATETIME;;
+ALTER TABLE Person ADD COLUMN deleted_dt DATETIME;
 
  alter table Person change column active active int(11) NOT NULL DEFAULT 1 ;
 
@@ -167,9 +169,10 @@ CREATE TABLE `Projects` (
   `file_location` varchar(254)    NOT NULL default '',
   `open_date` date default NULL,
   `open_by` int(11) NOT NULL default '0',
-  PRIMARY KEY  (`id`),
-  KEY `plookup` (`code`)
+  PRIMARY KEY  (`id`)
+  
 ) ;
+ALTER TABLE `Projects` ADD INDEX `plookup` (`code`);
 
 alter table Projects add column active int(11) default 1;
 alter table Projects add index plookup(code);
@@ -188,7 +191,18 @@ ALTER TABLE `Projects`  ADD COLUMN `languages` varchar(128)  NOT NULL;
 ALTER TABLE  Projects ADD COLUMN agency_id int(11)  NOT NULL DEFAULT 0 ;
 
 
-
+#-- we duplicate office_id and company_id here...
+#-- not sure if we should keep doing that in the new design...
+#-- we should improve our links code to handle this..
+CREATE TABLE `ProjectDirectory` (
+  `id` int(11) NOT NULL auto_increment,
+  `project_id` int(11) NOT NULL,
+  `person_id` int(11) NOT NULL,
+  `ispm` int(11) NOT NULL,
+  `role` varchar(16) NOT NULL,
+  PRIMARY KEY  (`id`)
+) ;
 
 CREATE TABLE   `Images` (
   `id` int(11) NOT NULL auto_increment,
@@ -228,10 +242,7 @@ CREATE TABLE  `core_image_type` (
   `id` int(11)  NOT NULL AUTO_INCREMENT,
   `name` varchar(64)  NOT NULL,
   PRIMARY KEY (`id`)
-) ;
-
-
+);
 
 CREATE TABLE  `i18n` (
   `id` int(11)  NOT NULL AUTO_INCREMENT,
@@ -239,25 +250,11 @@ CREATE TABLE  `i18n` (
   `lkey` varchar(8)  NOT NULL,
   `inlang` varchar(8)  NOT NULL,
   `lval` varchar(64)  NOT NULL,
-  PRIMARY KEY (`id`),
-  INDEX `lookup`(`ltype`, `lkey`, `inlang`)
-) ;
-
-
-DROP FUNCTION IF EXISTS i18n_translate;
+  PRIMARY KEY (`id`)
+  
+);
+ALTER TABLE i18n ADD INDEX `lookup` (`ltype`, `lkey`, `inlang`);
 
-DELIMITER $$
-CREATE FUNCTION i18n_translate(in_ltype  varchar(1) , in_lkey varchar(8), in_inlang varchar(8)) 
-        RETURNS VARCHAR(64) DETERMINISTIC
-    BEGIN
-        DECLARE ret  VARCHAR(64);
-        SET ret  = '';
-        SELECT lval INTO ret FROM i18n
-            WHERE ltype=in_ltype AND lkey=in_lkey and inlang=in_inlang LIMIT 1;
-        RETURN ret;
-        
-    END $$
-DELIMITER ;
                        
         
     
@@ -267,9 +264,23 @@ CREATE TABLE  core_locking (
   `on_id` int(11)  NOT NULL,
   `person_id` int(11)  NOT NULL,
   `created` datetime  NOT NULL,
-  PRIMARY KEY (`int`),
-  INDEX `lookup`(`on_table`, `on_id`, `person_id`, `created`)
+  PRIMARY KEY (`int`)
 );
+alter table  core_locking ADD  INDEX `lookup`(`on_table`, `on_id`, `person_id`, `created`);
+
+
+# -- a generic enumeraction
+
+CREATE TABLE   `core_enum` (
+  `id` int(11)  NOT NULL AUTO_INCREMENT,
+  `etype` varchar(32)  NOT NULL,
+  `name` varchar(255)  NOT NULL,
+  `active` int(2)  NOT NULL DEFAULT 1,
+  `seqid` int(11)  NOT NULL DEFAULT 0,
+  PRIMARY KEY (`id`),
+  INDEX `lookup`(`seqid`, `active`, `name`, `etype`)
+)
+ENGINE = MyISAM;
 
 
 
@@ -285,3 +296,46 @@ CREATE TABLE  `translations` (
 );
 
 ALTER TABLE translations ADD INDEX qlookup (module, tfile, tlang, tkey);
+
+
+# - used to trigger emails about changes to items being watched.
+
+CREATE TABLE `core_watch` (
+  `id` int(11)  NOT NULL AUTO_INCREMENT,
+  `ontable` varchar(128) NOT NULL,
+  `onid` int(11) NOT NULL,
+  `person_id` int(11) NOT NULL,
+  `event` varchar(128) NOT NULL,
+  `medium` varchar(128) NOT NULL,
+  `active` int(11) NOT NULL DEFAULT '1',
+  PRIMARY KEY (id)
+) ;
+ALTER TABLE core_watch ADD INDEX qlookup (`ontable`,`onid`,`user_id`,`event`,`medium`);
+
+CREATE TABLE  core_notify  (
+  `id` int(11)  NOT NULL AUTO_INCREMENT,
+  `act_when` DATETIME NOT NULL,
+  `onid` int(11)  NOT NULL DEFAULT 0,
+  `ontable` varchar(128)  NOT NULL DEFAULT '',
+  `person_id` int(11)  NOT NULL DEFAULT 0,
+  `msgid` varchar(128)  NOT NULL  DEFAULT '',
+  `sent` DATETIME  NOT NULL,
+  `bounced` int(4)  NOT NULL DEFAULT 0,
+  PRIMARY KEY (`id`),
+  INDEX `lookup`(`act_when`, `msgid`)
+);
+ALTER TABLE core_notify CHANGE COLUMN bounced event_id INT(11) DEFAULT 0;
+
+
+
+
+# - used by email / tracker to handle alises - we have to be carefull adding to this table...
+
+CREATE TABLE `core_person_alias` (
+  `id` int(11)  NOT NULL AUTO_INCREMENT,
+  `person_id` varchar(128) DEFAULT NULL,
+  `alias` varchar(254) NOT NULL,
+  PRIMARY KEY (`id`)
+) ;
+ALTER TABLE core_watch ADD INDEX qlookup (`alias`);