Your IP : 3.148.222.68


Current Path : /var/www/axolotl/data/www/yar.axolotls.ru/bitrix/modules/tasks/install/db/mysql/
Upload File :
Current File : /var/www/axolotl/data/www/yar.axolotls.ru/bitrix/modules/tasks/install/db/mysql/install.sql

CREATE TABLE b_tasks (
	ID int(11) NOT NULL AUTO_INCREMENT,
	TITLE varchar(255) DEFAULT NULL,
	DESCRIPTION text,
	DESCRIPTION_IN_BBCODE char(1) NOT NULL DEFAULT 'N',
	PRIORITY char(1) NOT NULL DEFAULT '1',
	STATUS char(1) DEFAULT NULL,
	RESPONSIBLE_ID int(11) DEFAULT NULL,
	DATE_START datetime DEFAULT NULL,
	DURATION_PLAN int(11) DEFAULT NULL,
	DURATION_FACT int(11) DEFAULT NULL,
	DURATION_TYPE varchar(5) NOT NULL DEFAULT 'days',
	TIME_ESTIMATE int(11) NOT NULL DEFAULT 0,
	REPLICATE char(1) NOT NULL DEFAULT 'N',
	DEADLINE datetime DEFAULT NULL,
	START_DATE_PLAN datetime DEFAULT NULL,
	END_DATE_PLAN datetime DEFAULT NULL,
	CREATED_BY int(11) DEFAULT NULL,
	CREATED_DATE datetime DEFAULT NULL,
	CHANGED_BY int(11) DEFAULT NULL,
	CHANGED_DATE datetime DEFAULT NULL,
	STATUS_CHANGED_BY int(11) DEFAULT NULL,
	STATUS_CHANGED_DATE datetime DEFAULT NULL,
	CLOSED_BY int(11) DEFAULT NULL,
	CLOSED_DATE datetime DEFAULT NULL,
	ACTIVITY_DATE datetime DEFAULT NULL,
	GUID varchar(50) DEFAULT NULL,
	XML_ID varchar(50) DEFAULT NULL,
	EXCHANGE_ID varchar(196) DEFAULT NULL,
	EXCHANGE_MODIFIED varchar(196) DEFAULT NULL,
	OUTLOOK_VERSION int(11) DEFAULT NULL,
	MARK char(1) DEFAULT NULL,
	ALLOW_CHANGE_DEADLINE char(1) NOT NULL DEFAULT 'N',

	ALLOW_CHANGE_DEADLINE_MAXTIME DATETIME NULL,
	ALLOW_CHANGE_DEADLINE_MAXTIME_VALUE VARCHAR(255) NULL,

	ALLOW_CHANGE_DEADLINE_COUNT TINYINT NULL,
	ALLOW_CHANGE_DEADLINE_COUNT_VALUE VARCHAR(255) NULL,

	ALLOW_TIME_TRACKING char(1) NOT NULL DEFAULT 'N',
	MATCH_WORK_TIME char(1) NOT NULL DEFAULT 'N',
	TASK_CONTROL char(1) NOT NULL DEFAULT 'N',
	ADD_IN_REPORT char(1) NOT NULL DEFAULT 'N',
	GROUP_ID int(11) DEFAULT '0',
	PARENT_ID int(11) DEFAULT NULL,
	FORUM_TOPIC_ID bigint(20) DEFAULT NULL,
	MULTITASK char(1) NOT NULL DEFAULT 'N',
	SITE_ID char(2) NOT NULL,
	DECLINE_REASON text,
	FORKED_BY_TEMPLATE_ID int(11) DEFAULT NULL,
	ZOMBIE char(1) NOT NULL DEFAULT 'N',
	DEADLINE_COUNTED int(11) NOT NULL DEFAULT 0,
	STAGE_ID int(11) NOT NULL DEFAULT '0',
	PRIMARY KEY (ID),
	KEY FORUM_TOPIC_ID (FORUM_TOPIC_ID),
	KEY PARENT_ID (PARENT_ID),
	KEY CREATED_BY (CREATED_BY),
	KEY RESPONSIBLE_ID (RESPONSIBLE_ID),
	KEY CHANGED_BY (CHANGED_BY),
	UNIQUE KEY GUID (GUID)
);

CREATE INDEX b_tasks_deadline_ibuk ON b_tasks(DEADLINE, DEADLINE_COUNTED);
CREATE INDEX ix_tasks_deadline_g ON b_tasks(GROUP_ID);
ALTER TABLE b_tasks ADD INDEX ix_tasks_minimal_filter (DEADLINE, STATUS, ZOMBIE, GROUP_ID);


CREATE TABLE b_tasks_files_temporary (
	USER_ID int(11) NOT NULL,
	FILE_ID int(11) NOT NULL,
	UNIX_TS int(11) NOT NULL,
	PRIMARY KEY (FILE_ID),
	KEY UNIX_TS (UNIX_TS),
	KEY USER_ID (USER_ID)
);

CREATE TABLE b_tasks_dependence (
	TASK_ID int(11) NOT NULL DEFAULT '0',
	DEPENDS_ON_ID int(11) NOT NULL DEFAULT '0',
	PRIMARY KEY (TASK_ID,DEPENDS_ON_ID),
	KEY DEPENDS_ON_ID (DEPENDS_ON_ID)
);

CREATE TABLE b_tasks_proj_dep (
	TASK_ID int(11) NOT NULL DEFAULT '0',
	DEPENDS_ON_ID int(11) NOT NULL DEFAULT '0',
	TYPE tinyint NOT NULL DEFAULT '2',
	DIRECT tinyint DEFAULT '0',
	MPCITY int(11) DEFAULT '1',
  CREATOR_ID int(11),
	PRIMARY KEY (TASK_ID,DEPENDS_ON_ID),
	KEY IX_TASKS_PROJ_DEP_DOI (DEPENDS_ON_ID),
	KEY IX_TASKS_PROJ_DEP_DIR (DIRECT)
);

CREATE TABLE b_tasks_file (
	TASK_ID int(11) NOT NULL DEFAULT '0',
	FILE_ID int(11) NOT NULL DEFAULT '0',
	PRIMARY KEY (TASK_ID,FILE_ID),
	KEY FILE_ID (FILE_ID)
);

CREATE TABLE b_tasks_member (
	TASK_ID int(11) NOT NULL DEFAULT '0',
	USER_ID int(11) NOT NULL DEFAULT '0',
	TYPE char(1) NOT NULL DEFAULT '',
	PRIMARY KEY (TASK_ID,USER_ID,TYPE),
	KEY USER_ID_TYPE (USER_ID, TYPE)
);

CREATE TABLE b_tasks_tag (
	TASK_ID int(11) NOT NULL,
	USER_ID int(11) NOT NULL,
	NAME varchar(255) NOT NULL,
	PRIMARY KEY (TASK_ID,USER_ID,NAME),
	KEY NAME (NAME),
	KEY USER_ID (USER_ID)
);

CREATE TABLE b_tasks_template (
	ID int(11) NOT NULL AUTO_INCREMENT,
	TASK_ID int(11) DEFAULT NULL,
	TITLE varchar(255) DEFAULT NULL,
	DESCRIPTION text,
	DESCRIPTION_IN_BBCODE char(1) NOT NULL DEFAULT 'N',
	PRIORITY char(1) NOT NULL DEFAULT '1',
	STATUS char(1) NOT NULL DEFAULT '1',
	RESPONSIBLE_ID int(11) DEFAULT NULL,
	DEADLINE_AFTER int(11) DEFAULT NULL,
  START_DATE_PLAN_AFTER int(11) DEFAULT NULL,
  END_DATE_PLAN_AFTER int(11) DEFAULT NULL,
  TIME_ESTIMATE int(11) NOT NULL DEFAULT 0,
	REPLICATE char(1) NOT NULL DEFAULT 'N',
	REPLICATE_PARAMS text,
	CREATED_BY int(11) DEFAULT NULL,
	XML_ID varchar(50) DEFAULT NULL,
	ALLOW_CHANGE_DEADLINE char(1) NOT NULL DEFAULT 'N',
	ALLOW_TIME_TRACKING char(1) NOT NULL DEFAULT 'N',
	TASK_CONTROL char(1) NOT NULL DEFAULT 'N',
	MATCH_WORK_TIME char(1) NOT NULL DEFAULT 'N',
	ADD_IN_REPORT char(1) NOT NULL DEFAULT 'N',
	GROUP_ID int(11) DEFAULT NULL,
	PARENT_ID int(11) DEFAULT NULL,
	MULTITASK char(1) NOT NULL DEFAULT 'N',
	SITE_ID char(2) NOT NULL,
	ACCOMPLICES text,
	AUDITORS text,
	RESPONSIBLES text,
	FILES text,
	TAGS text,
	DEPENDS_ON text,
	TPARAM_TYPE int,
	TPARAM_REPLICATION_COUNT int DEFAULT '0',
	STAGE_ID int(11) NOT NULL DEFAULT '0',
	ZOMBIE char(1) NOT NULL DEFAULT 'N',
	PRIMARY KEY (ID),
	KEY TASK_ID (TASK_ID),
	KEY PARENT_ID (PARENT_ID),
	KEY CREATED_BY (CREATED_BY),
	KEY RESPONSIBLE_ID (RESPONSIBLE_ID)
);

CREATE TABLE b_tasks_template_dep (
	TEMPLATE_ID int(11) NOT NULL,
	PARENT_TEMPLATE_ID int(11) NOT NULL,
	DIRECT tinyint default '0',

	PRIMARY KEY (TEMPLATE_ID,PARENT_TEMPLATE_ID),
	KEY IX_TASKS_TASK_DEP_DIR (DIRECT)
);

CREATE TABLE b_tasks_viewed (
	TASK_ID int(11) NOT NULL,
	USER_ID int(11) NOT NULL,
	VIEWED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
	PRIMARY KEY (TASK_ID,USER_ID),
	KEY USER_ID (USER_ID)
);

CREATE TABLE b_tasks_log (
  ID int(11) NOT NULL AUTO_INCREMENT,
  CREATED_DATE datetime NOT NULL,
  USER_ID int(11) NOT NULL,
  TASK_ID int(11) NOT NULL,
  FIELD varchar(50) NOT NULL,
  FROM_VALUE text,
  TO_VALUE text,
  PRIMARY KEY pk_b_tasks_log(ID)
);

CREATE INDEX b_tasks_log1 ON b_tasks_log(TASK_ID, CREATED_DATE);

CREATE TABLE b_tasks_elapsed_time (
  ID int(11) NOT NULL AUTO_INCREMENT,
  CREATED_DATE timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  DATE_START datetime DEFAULT NULL,
  DATE_STOP datetime DEFAULT NULL,
  USER_ID int(11) NOT NULL,
  TASK_ID int(11) NOT NULL,
  MINUTES int(11) NOT NULL,
  SECONDS int(11) NOT NULL DEFAULT '0',
  SOURCE int(11) NOT NULL DEFAULT '1',
  COMMENT_TEXT text,
  PRIMARY KEY (ID),
  KEY TASK_ID (TASK_ID)
);

CREATE INDEX USER_ID ON b_tasks_elapsed_time(USER_ID);

CREATE TABLE b_tasks_reminder (
  ID int(11) NOT NULL AUTO_INCREMENT,
  USER_ID int(11) NOT NULL,
  TASK_ID int(11) NOT NULL,
  REMIND_DATE datetime NOT NULL,
  TYPE char(1) NOT NULL,
  TRANSPORT char(1) NOT NULL,
  RECEPIENT_TYPE char(1) default 'S',
  KEY USER_ID (USER_ID,TASK_ID),
  PRIMARY KEY pk_b_tasks_reminder(ID)
);

CREATE INDEX IX_TASKS_REMINDER_RD ON b_tasks_reminder(REMIND_DATE);

CREATE TABLE b_tasks_filters (
	ID int(11) NOT NULL AUTO_INCREMENT,
	USER_ID int(11) NOT NULL,
	NAME varchar(255) DEFAULT NULL,
	PARENT int(11) NOT NULL,
	SERIALIZED_FILTER text,
	PRIMARY KEY (ID),
	KEY USER_ID (USER_ID)
);

CREATE TABLE b_tasks_checklist_items (
	ID int(11) NOT NULL AUTO_INCREMENT,
	TASK_ID int(11) NOT NULL,
	CREATED_BY int(11) NOT NULL,
	TOGGLED_BY int(11) DEFAULT NULL,
	TOGGLED_DATE datetime DEFAULT NULL,
	TITLE varchar(255) DEFAULT NULL,
	IS_COMPLETE char(1) NOT NULL DEFAULT 'N',
	IS_IMPORTANT char(1) NOT NULL DEFAULT 'N',
	SORT_INDEX int(11) NOT NULL DEFAULT '0',
	PRIMARY KEY (ID),
	KEY USER_ID (TASK_ID)
);

CREATE TABLE b_tasks_checklist_items_tree (
    PARENT_ID INT NOT NULL,
    CHILD_ID INT NOT NULL,
    LEVEL SMALLINT NOT NULL DEFAULT 0,
    PRIMARY KEY (PARENT_ID, CHILD_ID)
);
CREATE INDEX ix_tasks_checklist_items_tree_child_id_level  ON b_tasks_checklist_items_tree(CHILD_ID, LEVEL);

CREATE TABLE b_tasks_checklist_items_member (
    ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ITEM_ID INT(11) NOT NULL,
    USER_ID INT(11) NOT NULL,
    TYPE CHAR(1) NOT NULL,
    UNIQUE (ITEM_ID, USER_ID, TYPE),
    KEY USER_ID_TYPE (USER_ID, TYPE)
);

create table b_tasks_template_chl_item (
	ID int NOT NULL AUTO_INCREMENT,
	TEMPLATE_ID int(11) NOT NULL,
	SORT int(11) DEFAULT '0',
	TITLE varchar(255) NOT NULL,
	CHECKED tinyint default '0',
	IS_IMPORTANT char(1) NOT NULL DEFAULT 'N',
	PRIMARY KEY (ID),
	KEY ix_tasks_templ_chl_item_tid(TEMPLATE_ID)
);

CREATE TABLE b_tasks_template_chl_item_tree (
    PARENT_ID INT NOT NULL,
    CHILD_ID INT NOT NULL,
    LEVEL SMALLINT NOT NULL DEFAULT 0,
    PRIMARY KEY (PARENT_ID, CHILD_ID)
);
CREATE INDEX ix_tasks_template_chl_item_tree_child_id_level  ON b_tasks_template_chl_item_tree(CHILD_ID, LEVEL);

CREATE TABLE b_tasks_template_chl_item_member (
    ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ITEM_ID INT(11) NOT NULL,
    USER_ID INT(11) NOT NULL,
    TYPE CHAR(1) NOT NULL,
    UNIQUE (ITEM_ID, USER_ID, TYPE),
    KEY USER_ID_TYPE (USER_ID, TYPE)
);

CREATE TABLE b_tasks_timer (
	TASK_ID int(11) NOT NULL,
	USER_ID int(11) NOT NULL,
	TIMER_STARTED_AT int(11) NOT NULL DEFAULT '0',
	TIMER_ACCUMULATOR int(11) NOT NULL DEFAULT '0',
	PRIMARY KEY (USER_ID),
	KEY TASK_ID (TASK_ID)
);

CREATE TABLE b_tasks_columns (
	ID int(11) NOT NULL AUTO_INCREMENT,
	USER_ID int(11) NOT NULL,
	CONTEXT_ID int(11) NOT NULL,
	NAME varchar(255) DEFAULT NULL,
	SERIALIZED_COLUMNS text,
	PRIMARY KEY (ID),
	KEY USER_ID (USER_ID)
);

CREATE TABLE b_tasks_favorite (
	TASK_ID int NOT NULL,
	USER_ID int NOT NULL,
	PRIMARY KEY (TASK_ID, USER_ID)
);

CREATE TABLE b_tasks_msg_throttle (
	ID int(11) NOT NULL AUTO_INCREMENT,
	TASK_ID int(11) NOT NULL,
	AUTHOR_ID int(11),
	INFORM_AUTHOR char(1) DEFAULT '0',
	STATE_ORIG text,
	STATE_LAST text,

	PRIMARY KEY (ID)
);

CREATE INDEX ix_tasks_msg_throttle_ti ON b_tasks_msg_throttle(TASK_ID);

CREATE TABLE b_tasks_sorting (
	ID int(11) NOT NULL AUTO_INCREMENT,
	TASK_ID int(11) NOT NULL,
	SORT decimal(18,7) NOT NULL,
	USER_ID int(11) NOT NULL DEFAULT 0,
	GROUP_ID int(11) NOT NULL DEFAULT 0,
	PREV_TASK_ID int(11) NOT NULL DEFAULT 0,
	NEXT_TASK_ID int(11) NOT NULL DEFAULT 0,
	PRIMARY KEY (ID)
);

CREATE INDEX ix_tasks_sorting_tid_uid ON b_tasks_sorting(TASK_ID, USER_ID);
CREATE INDEX ix_tasks_sorting_tid_gid ON b_tasks_sorting(TASK_ID, GROUP_ID);
CREATE INDEX ix_tasks_sorting_sort ON b_tasks_sorting(SORT);
ALTER TABLE b_tasks_sorting ADD INDEX ix_tasks_sorting_minimal (USER_ID, SORT);

CREATE TABLE b_tasks_syslog (
	ID int(11) NOT NULL AUTO_INCREMENT,
	TYPE tinyint,
	CREATED_DATE datetime,
	MESSAGE varchar(255),
	ENTITY_ID int(11),
	ENTITY_TYPE tinyint,
  PARAM_A int,
	ERROR text,
	PRIMARY KEY (ID)
);

CREATE INDEX ix_tasks_syslog_etei ON b_tasks_syslog(ENTITY_TYPE, ENTITY_ID);
CREATE INDEX ix_tasks_syslog_d ON b_tasks_syslog(CREATED_DATE);

create table b_tasks_task_template_access
(
  ID int not null primary key auto_increment,
  GROUP_CODE varchar(50) NOT NULL,
  ENTITY_ID int not null,
  TASK_ID int not null
);

create index ix_tasks_task_template_a_get on b_tasks_task_template_access (GROUP_CODE, ENTITY_ID, TASK_ID);

create table b_tasks_task_parameter (
  ID int not null AUTO_INCREMENT PRIMARY KEY,
  TASK_ID int not null,
  CODE tinyint not null,
  VALUE varchar(10) default null
);

CREATE UNIQUE INDEX ix_tasks_task_parameter_ticv ON b_tasks_task_parameter(TASK_ID, CODE, VALUE);

CREATE TABLE b_tasks_task_dep (
  TASK_ID int(11) NOT NULL,
  PARENT_TASK_ID int(11) NOT NULL,
  DIRECT tinyint default '0',

  UNIQUE index (TASK_ID, PARENT_TASK_ID, DIRECT),
  UNIQUE index (PARENT_TASK_ID, TASK_ID, DIRECT)
);

CREATE TABLE b_tasks_stages (
  ID int(18) NOT NULL AUTO_INCREMENT,
  TITLE varchar(255) DEFAULT NULL,
  SORT int(11) DEFAULT NULL,
  COLOR char(6) DEFAULT NULL,
  SYSTEM_TYPE varchar(20) DEFAULT NULL,
  ENTITY_ID int(18) DEFAULT 0,
  ENTITY_TYPE char(1) DEFAULT 'G',
  ADDITIONAL_FILTER text default null,
  TO_UPDATE text default null,
  TO_UPDATE_ACCESS varchar(255) default null,
  PRIMARY KEY (`ID`)
);

CREATE TABLE b_tasks_task_stage (
  ID int(18) NOT NULL AUTO_INCREMENT,
  TASK_ID int(11) NOT NULL,
  STAGE_ID int(18) NOT NULL,
  PRIMARY KEY (ID),
  UNIQUE KEY STAGE_TASK (STAGE_ID, TASK_ID),
  KEY TASK_ID (TASK_ID)
);

CREATE TABLE b_tasks_projects (
  ID int(11) NOT NULL AUTO_INCREMENT,
  ORDER_NEW_TASK varchar(10) NOT NULL default 'desc',
  PRIMARY KEY (`ID`)
);

ALTER TABLE b_tasks ADD INDEX IDX_TASKS_STAGE_ID (STAGE_ID);
ALTER TABLE b_tasks_template ADD INDEX IDX_TASKS_STAGE_ID (STAGE_ID);

CREATE TABLE IF NOT EXISTS b_tasks_counters (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `USER_ID` int(11) NOT NULL,
  `GROUP_ID` int(11) NOT NULL DEFAULT '0',
  `OPENED` smallint(6) NOT NULL DEFAULT '0',
  `CLOSED` smallint(6) NOT NULL DEFAULT '0',
  `EXPIRED` INT NOT NULL DEFAULT '0',
  `NEW_COMMENTS` INT NOT NULL DEFAULT '0',
  `MY_EXPIRED` smallint(6) NOT NULL DEFAULT '0',
  `MY_EXPIRED_SOON` smallint(6) NOT NULL DEFAULT '0',
  `MY_NOT_VIEWED` smallint(6) DEFAULT '0',
  `MY_WITHOUT_DEADLINE` smallint(6) NOT NULL DEFAULT '0',
  `MY_NEW_COMMENTS` INT NOT NULL DEFAULT '0',
  `ORIGINATOR_WITHOUT_DEADLINE` smallint(6) DEFAULT '0',
  `ORIGINATOR_EXPIRED` smallint(6) DEFAULT '0',
  `ORIGINATOR_WAIT_CTRL` smallint(6) NOT NULL DEFAULT '0',
  `ORIGINATOR_NEW_COMMENTS` INT NOT NULL DEFAULT '0',
  `AUDITOR_EXPIRED` smallint(6) DEFAULT '0',
  `AUDITOR_NEW_COMMENTS` INT NOT NULL DEFAULT '0',
  `ACCOMPLICES_EXPIRED` smallint(6) DEFAULT '0',
  `ACCOMPLICES_EXPIRED_SOON` smallint(6) DEFAULT '0',
  `ACCOMPLICES_NOT_VIEWED` smallint(6) DEFAULT '0',
  `ACCOMPLICES_NEW_COMMENTS` INT NOT NULL DEFAULT '0',
  PRIMARY KEY (`ID`),
  UNIQUE KEY b_tasks_counters_user_group (USER_ID, GROUP_ID)
);

CREATE TABLE IF NOT EXISTS b_tasks_effective(
  `ID` INT(11) NOT NULL AUTO_INCREMENT,
  `DATETIME` DATETIME NOT NULL,
  `DATETIME_REPAIR` DATETIME NULL,
  `USER_ID` INT(11) NOT NULL,
  `GROUP_ID` INT(11) NOT NULL DEFAULT '0',
  `EFFECTIVE` TINYINT(4) NOT NULL DEFAULT '0',
  `TASK_ID` INT(11) NOT NULL,
  `TASK_TITLE` VARCHAR(255) NULL,
  `TASK_DEADLINE` DATETIME NULL,
  `USER_TYPE` CHAR(1) NOT NULL,
  `IS_VIOLATION` CHAR(1) NOT NULL DEFAULT 'N',
  PRIMARY KEY (`ID`)
);

ALTER TABLE b_tasks_effective ADD INDEX b_tasks_effective_DATETIME_USER_ID (DATETIME, USER_ID);
ALTER TABLE b_tasks_effective ADD INDEX b_tasks_effective_USER_ID ( USER_ID);

CREATE TABLE b_tasks_search_index (
    ID bigint(20) auto_increment primary key,
    TASK_ID int not null,
    MESSAGE_ID bigint(20) default 0 not null,
    SEARCH_INDEX mediumtext null,
    unique (TASK_ID, MESSAGE_ID)
);

CREATE TABLE IF NOT EXISTS b_tasks_sprint (
	ID int(18) NOT NULL AUTO_INCREMENT,
	GROUP_ID int(18) NOT NULL,
	CREATED_BY_ID int(18) NOT NULL,
	MODIFIED_BY_ID int(18) NOT NULL,
	START_TIME timestamp NULL DEFAULT CURRENT_TIMESTAMP,
	FINISH_TIME timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
	PRIMARY KEY (ID)
);

CREATE TABLE IF NOT EXISTS b_tasks_role (
    ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    NAME VARCHAR(250) NOT NULL,
    PRIMARY KEY (ID)
);

CREATE TABLE IF NOT EXISTS b_tasks_role_relation (
    ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    ROLE_ID INT(10) UNSIGNED NOT NULL,
    RELATION VARCHAR(8) NOT NULL DEFAULT '',
    PRIMARY KEY (ID),
    INDEX ROLE_ID (ROLE_ID),
    INDEX RELATION (RELATION)
);

CREATE TABLE IF NOT EXISTS b_tasks_permission (
    ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    ROLE_ID INT(10) UNSIGNED NOT NULL,
    PERMISSION_ID VARCHAR(32) NOT NULL DEFAULT '0',
    VALUE TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
    PRIMARY KEY (ID),
    INDEX ROLE_ID (ROLE_ID),
    INDEX PERMISSION_ID (PERMISSION_ID)
);

CREATE TABLE IF NOT EXISTS b_tasks_template_permission (
	ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
	TEMPLATE_ID INT(10) UNSIGNED NULL DEFAULT NULL,
	ACCESS_CODE VARCHAR(8) NULL DEFAULT NULL,
	PERMISSION_ID VARCHAR(32) NULL DEFAULT NULL,
	VALUE TINYINT(3) UNSIGNED NULL DEFAULT '0',
	PRIMARY KEY (ID),
	INDEX TEMPLATE_ID (TEMPLATE_ID),
	INDEX ACCESS_CODE (ACCESS_CODE),
	INDEX PERMISSION_ID (PERMISSION_ID)
);

CREATE TABLE IF NOT EXISTS b_tasks_user_option (
    ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    TASK_ID INT(11) NOT NULL,
    USER_ID INT(11) NOT NULL,
    OPTION_CODE INT NOT NULL,
    UNIQUE KEY TASK_USER_OPTION (TASK_ID, USER_ID, OPTION_CODE)
);