79 lines
5.2 KiB
MySQL
79 lines
5.2 KiB
MySQL
|
|
CREATE TABLE IF NOT EXISTS `partners` (
|
|||
|
|
`id` int(11) NOT NULL,
|
|||
|
|
`name` varchar(64) NOT NULL COMMENT 'Наименование партнёра',
|
|||
|
|
`address` varchar(255) NOT NULL COMMENT 'Адрес отделения',
|
|||
|
|
`resident` varchar(255) DEFAULT NULL COMMENT 'Жилой комплекс',
|
|||
|
|
`details` text COMMENT 'Банковские реквизиты компании-партнёра',
|
|||
|
|
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Статус партнёра (0 - не активен, 1 - активен)',
|
|||
|
|
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания (добавления) партнёра',
|
|||
|
|
`created_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который добавил партнёра',
|
|||
|
|
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата обновления (редактирования) партнёра',
|
|||
|
|
`updated_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который изменил данные партнёра'
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci COMMENT='Таблица компаний-партнёров';
|
|||
|
|
|
|||
|
|
ALTER TABLE `partners`
|
|||
|
|
ADD PRIMARY KEY (`id`),
|
|||
|
|
ADD KEY `idx_partners` (`name`,`address`,`resident`,`status`);
|
|||
|
|
|
|||
|
|
ALTER TABLE `partners`
|
|||
|
|
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'PK';
|
|||
|
|
|
|||
|
|
|
|||
|
|
CREATE TABLE IF NOT EXISTS `partners_employees` (
|
|||
|
|
`id` int(11) NOT NULL,
|
|||
|
|
`partner_id` int(11) NOT NULL COMMENT 'ID компании-партнёра, к которой принадлежит сотрудник',
|
|||
|
|
`name` varchar(255) NOT NULL COMMENT 'Ф.И.О. сотрудника',
|
|||
|
|
`birthday` datetime DEFAULT NULL COMMENT 'Дата рождения сотрудника',
|
|||
|
|
`birthday_notify` tinyint(4) NOT NULL DEFAULT '0',
|
|||
|
|
`phone` varchar(255) DEFAULT NULL COMMENT 'Контактный телефон сотрудника',
|
|||
|
|
`email` varchar(255) NOT NULL COMMENT 'Адрес эл. почты сотрудника',
|
|||
|
|
`instagram` varchar(255) DEFAULT NULL COMMENT 'Профиль сотрудника в Инстаграм',
|
|||
|
|
`vkontakte` varchar(255) DEFAULT NULL COMMENT 'Профиль сотрудника в вКонтакте',
|
|||
|
|
`telegram` varchar(255) DEFAULT NULL COMMENT 'Профиль сотрудника в Телеграм',
|
|||
|
|
`position` varchar(64) NOT NULL COMMENT 'Занимаемая должность сотрудника',
|
|||
|
|
`is_head` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Флаг руководителя (0 - обычный сотрудник, 1 - руководитель)',
|
|||
|
|
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Статус сотрудника (0 - не активен, 1 - активен)',
|
|||
|
|
`created_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания (добавления) сотрудника',
|
|||
|
|
`created_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который добавил сотрудника',
|
|||
|
|
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата обновления (редактирования) сотрудника',
|
|||
|
|
`updated_by` mediumint(9) NOT NULL COMMENT 'Пользователь, который изменил данные сотрудника'
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci COMMENT='Таблица сотрудников компании-партнёра';
|
|||
|
|
|
|||
|
|
ALTER TABLE `partners_employees`
|
|||
|
|
ADD PRIMARY KEY (`id`),
|
|||
|
|
ADD KEY `idx_employees_to_partners` (`partner_id`),
|
|||
|
|
ADD KEY `idx_employees` (`name`,`birthday`,`phone`,`email`,`position`,`is_head`,`status`);
|
|||
|
|
|
|||
|
|
ALTER TABLE `partners_employees`
|
|||
|
|
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'PK';
|
|||
|
|
|
|||
|
|
ALTER TABLE `partners_employees`
|
|||
|
|
ADD CONSTRAINT `fk_employees_to_partners`
|
|||
|
|
FOREIGN KEY (`partner_id`) REFERENCES `partners` (`id`)
|
|||
|
|
ON DELETE CASCADE
|
|||
|
|
ON UPDATE CASCADE;
|
|||
|
|
|
|||
|
|
ALTER TABLE `clients` ADD `employee_id` INT(11) NULL DEFAULT NULL COMMENT 'ID сотрудника компании-партёнра' AFTER `step_id`,
|
|||
|
|
ADD INDEX `idx_partner_employee` (`employee_id`);
|
|||
|
|
|
|||
|
|
CREATE TABLE IF NOT EXISTS `partners_files` (
|
|||
|
|
`id` INT(11) NOT NULL COMMENT 'PK',
|
|||
|
|
`employee_id` INT(11) NOT NULL COMMENT 'ID сотрудника партнёра, к которому прикреплён файл',
|
|||
|
|
`filename` VARCHAR(128) NOT NULL COMMENT 'Название файла',
|
|||
|
|
`path` VARCHAR(255) NOT NULL COMMENT 'Путь к файлу на сервере',
|
|||
|
|
`created_at` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Дата создания (загрузки) файла',
|
|||
|
|
`created_by` MEDIUMINT(9) NOT NULL COMMENT 'Пользователь, который загрузил файл'
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_general_ci COMMENT='Таблица прикреплённых файлов сотрудников компании-партнёра';
|
|||
|
|
|
|||
|
|
ALTER TABLE `partners_files`
|
|||
|
|
ADD PRIMARY KEY (`id`),
|
|||
|
|
ADD KEY `idx_files_to_employees` (`employee_id`),
|
|||
|
|
ADD KEY `idx_files` (`filename`,`path`);
|
|||
|
|
|
|||
|
|
ALTER TABLE `partners_files`
|
|||
|
|
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'PK';
|
|||
|
|
|
|||
|
|
ALTER TABLE `partners_files`
|
|||
|
|
ADD CONSTRAINT `fk_files_to_employees` FOREIGN KEY (`employee_id`) REFERENCES `partners_employees` (`id`)
|
|||
|
|
ON DELETE CASCADE
|
|||
|
|
ON UPDATE CASCADE;
|