Joywork/sql/partners.sql
2026-05-22 21:21:54 +03:00

79 lines
5.2 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;