X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=mysql.sql;fp=mysql.sql;h=b8d7e134ccbb4381aad1433b91f1e3f964a470c1;hb=066efce7ef712710e229308b6099f5af410aecb8;hp=fc67b19f4d1df9049226d782c16edb76adeaf96b;hpb=db25f950841ee874795d4b9605f8ae2347aaf4f1;p=timetracker.git diff --git a/mysql.sql b/mysql.sql index fc67b19f..b8d7e134 100644 --- a/mysql.sql +++ b/mysql.sql @@ -423,6 +423,36 @@ CREATE TABLE `tt_custom_field_log` ( create index log_idx on tt_custom_field_log(log_id); +# +# Structure for table tt_entity_custom_fields. +# This table stores custom field values for entities such as users and projects +# except for "time" entity (and possibly "expense" in future). +# "time" custom fields are kept separately in tt_custom_field_log +# because tt_log (and tt_custom_field_log) can grow very large. +# +CREATE TABLE `tt_entity_custom_fields` ( + `id` int(10) unsigned NOT NULL auto_increment, # record id in this table + `group_id` int(10) unsigned NOT NULL, # group id + `org_id` int(10) unsigned NOT NULL, # organization id + `entity_type` tinyint(4) NOT NULL, # entity type + `entity_id` int(10) unsigned NOT NULL, # entity id this record corresponds to + `field_id` int(10) unsigned NOT NULL, # custom field id + `option_id` int(10) unsigned default NULL, # Option id. Used for dropdown custom fields. + `value` varchar(255) default NULL, # Text value. Used for text custom fields. + `created` datetime default NULL, # creation timestamp + `created_ip` varchar(45) default NULL, # creator ip + `created_by` int(10) unsigned default NULL, # creator user_id + `modified` datetime default NULL, # modification timestamp + `modified_ip` varchar(45) default NULL, # modifier ip + `modified_by` int(10) unsigned default NULL, # modifier user_id + `status` tinyint(4) default 1, # record status + PRIMARY KEY (`id`) +); + +# Create an index that guarantees unique custom fields per entity. +create unique index entity_idx on tt_entity_custom_fields(entity_type, entity_id, field_id); + + # # Structure for table tt_expense_items. # This table lists expense items. @@ -611,4 +641,4 @@ CREATE TABLE `tt_site_config` ( PRIMARY KEY (`param_name`) ); -INSERT INTO `tt_site_config` (`param_name`, `param_value`, `created`) VALUES ('version_db', '1.19.6', now()); # TODO: change when structure changes. +INSERT INTO `tt_site_config` (`param_name`, `param_value`, `created`) VALUES ('version_db', '1.19.7', now()); # TODO: change when structure changes.