X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=mysql.sql;h=00abb462f09dc317b44ba3d0330a9c9ce248d23a;hb=15ae2165165da813912300d223c50b74f44cc1e0;hp=267d842dc336d908e3fb2bef09f4cdcd49bd97c2;hpb=a9d5914d51687f6f760b9c0e72fc4e99101f2830;p=timetracker.git diff --git a/mysql.sql b/mysql.sql index 267d842d..00abb462 100644 --- a/mysql.sql +++ b/mysql.sql @@ -53,6 +53,7 @@ CREATE TABLE `tt_groups` ( CREATE TABLE `tt_roles` ( `id` int(11) NOT NULL auto_increment, # Role id. Identifies roles for all groups on the server. `group_id` int(11) NOT NULL, # Group id the role is defined for. + `org_id` int(11) default NULL, # Organization id. `name` varchar(80) default NULL, # Role name - custom role name. In case we are editing a # predefined role (USER, etc.), we can rename the role here. `description` varchar(255) default NULL, # Role description. @@ -85,6 +86,7 @@ CREATE TABLE `tt_users` ( `password` varchar(50) default NULL, # password hash `name` varchar(100) default NULL, # user name `group_id` int(11) NOT NULL, # group id + `org_id` int(11) default NULL, # organization id `role_id` int(11) default NULL, # role id `client_id` int(11) default NULL, # client id for "client" user role `rate` float(6,2) NOT NULL default '0.00', # default hourly rate @@ -104,7 +106,7 @@ CREATE TABLE `tt_users` ( # Create an index that guarantees unique active and inactive logins. create unique index login_idx on tt_users(login, status); -# Create admin account with password 'secret'. Admin is a superuser, who can create groupd. +# Create admin account with password 'secret'. Admin is a superuser who can create groups. DELETE from `tt_users` WHERE login = 'admin'; INSERT INTO `tt_users` (`login`, `password`, `name`, `group_id`, `role_id`) VALUES ('admin', md5('secret'), 'Admin', '0', (select id from tt_roles where rank = 1024)); @@ -115,6 +117,7 @@ INSERT INTO `tt_users` (`login`, `password`, `name`, `group_id`, `role_id`) VALU CREATE TABLE `tt_projects` ( `id` int(11) NOT NULL auto_increment, # project id `group_id` int(11) NOT NULL, # group id + `org_id` int(11) default NULL, # organization id `name` varchar(80) COLLATE utf8_bin NOT NULL, # project name `description` varchar(255) default NULL, # project description `tasks` text default NULL, # comma-separated list of task ids associated with this project @@ -132,6 +135,7 @@ create unique index project_idx on tt_projects(group_id, name, status); CREATE TABLE `tt_tasks` ( `id` int(11) NOT NULL auto_increment, # task id `group_id` int(11) NOT NULL, # group id + `org_id` int(11) default NULL, # organization id `name` varchar(80) COLLATE utf8_bin NOT NULL, # task name `description` varchar(255) default NULL, # task description `status` tinyint(4) default 1, # task status @@ -149,6 +153,8 @@ CREATE TABLE `tt_user_project_binds` ( `id` int(11) NOT NULL auto_increment, # bind id `user_id` int(11) NOT NULL, # user id `project_id` int(11) NOT NULL, # project id + `group_id` int(11) default NULL, # group id + `org_id` int(11) default NULL, # organization id `rate` float(6,2) default '0.00', # rate for this user when working on this project `status` tinyint(4) default 1, # bind status PRIMARY KEY (`id`) @@ -162,8 +168,10 @@ create unique index bind_idx on tt_user_project_binds(user_id, project_id); # Structure for table tt_project_task_binds. This table maps projects to assigned tasks. # CREATE TABLE `tt_project_task_binds` ( - `project_id` int(11) NOT NULL, # project id - `task_id` int(11) NOT NULL # task id + `project_id` int(11) NOT NULL, # project id + `task_id` int(11) NOT NULL # task id + `group_id` int(11) default NULL, # group id + `org_id` int(11) default NULL, # organization id ); # Indexes for tt_project_task_binds. @@ -178,6 +186,8 @@ create index task_idx on tt_project_task_binds(task_id); CREATE TABLE `tt_log` ( `id` bigint NOT NULL auto_increment, # time record id `user_id` int(11) NOT NULL, # user id + `group_id` int(11) default NULL, # group id + `org_id` int(11) default NULL, # organization id `date` date NOT NULL, # date the record is for `start` time default NULL, # record start time (for example, 09:00) `duration` time default NULL, # record duration (for example, 1 hour) @@ -201,6 +211,7 @@ CREATE TABLE `tt_log` ( # Create indexes on tt_log for performance. create index date_idx on tt_log(date); create index user_idx on tt_log(user_id); +create index group_idx on tt_log(group_id); create index client_idx on tt_log(client_id); create index invoice_idx on tt_log(invoice_id); create index project_idx on tt_log(project_id); @@ -213,6 +224,7 @@ create index task_idx on tt_log(task_id); CREATE TABLE `tt_invoices` ( `id` int(11) NOT NULL auto_increment, # invoice id `group_id` int(11) NOT NULL, # group id + `org_id` int(11) default NULL, # organization id `name` varchar(80) COLLATE utf8_bin NOT NULL, # invoice name `date` date NOT NULL, # invoice date `client_id` int(11) NOT NULL, # client id @@ -267,7 +279,9 @@ CREATE TABLE `tt_fav_reports` ( `show_custom_field_1` tinyint(4) NOT NULL default 0, # whether to show custom field 1 `show_work_units` tinyint(4) NOT NULL default 0, # whether to show work units `show_totals_only` tinyint(4) NOT NULL default 0, # whether to show totals only - `group_by` varchar(20) default NULL, # group by field + `group_by1` varchar(20) default NULL, # group by field 1 + `group_by2` varchar(20) default NULL, # group by field 2 + `group_by3` varchar(20) default NULL, # group by field 3 `status` tinyint(4) default 1, # favorite report status PRIMARY KEY (`id`) ); @@ -298,6 +312,7 @@ CREATE TABLE `tt_cron` ( CREATE TABLE `tt_clients` ( `id` int(11) NOT NULL AUTO_INCREMENT, # client id `group_id` int(11) NOT NULL, # group id + `org_id` int(11) default NULL, # organization id `name` varchar(80) COLLATE utf8_bin NOT NULL, # client name `address` varchar(255) default NULL, # client address `tax` float(6,2) default '0.00', # applicable tax for this client @@ -378,6 +393,8 @@ CREATE TABLE `tt_custom_field_log` ( PRIMARY KEY (`id`) ); +create index log_idx on tt_custom_field_log(log_id); + # # Structure for table tt_expense_items. @@ -387,6 +404,7 @@ CREATE TABLE `tt_expense_items` ( `id` bigint NOT NULL auto_increment, # expense item id `date` date NOT NULL, # date the record is for `user_id` int(11) NOT NULL, # user id the expense item is reported by + `group_id` int(11) default NULL, # group id `client_id` int(11) default NULL, # client id `project_id` int(11) default NULL, # project id `name` text NOT NULL, # expense item name (what is an expense for) @@ -406,6 +424,7 @@ CREATE TABLE `tt_expense_items` ( # Create indexes on tt_expense_items for performance. create index date_idx on tt_expense_items(date); create index user_idx on tt_expense_items(user_id); +create index group_idx on tt_expense_items(group_id); create index client_idx on tt_expense_items(client_id); create index project_idx on tt_expense_items(project_id); create index invoice_idx on tt_expense_items(invoice_id); @@ -450,4 +469,4 @@ CREATE TABLE `tt_site_config` ( PRIMARY KEY (`param_name`) ); -INSERT INTO `tt_site_config` (`param_name`, `param_value`, `created`) VALUES ('version_db', '1.17.92', now()); # TODO: change when structure changes. +INSERT INTO `tt_site_config` (`param_name`, `param_value`, `created`) VALUES ('version_db', '1.18.12', now()); # TODO: change when structure changes.