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;