Joywork/sql/partners.sql

79 lines
5.2 KiB
MySQL
Raw Permalink Normal View History

2026-05-22 20:21:54 +02:00
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;