Files
mkd/backend/migrations/create_employee_districts.sql

19 lines
1.2 KiB
MySQL
Raw Normal View History

2026-02-04 00:17:04 +05:00
-- Связь сотрудник — участки (многие ко многим): один сотрудник может быть назначен на несколько участков
CREATE TABLE IF NOT EXISTS employee_districts (
employee_id VARCHAR(50) NOT NULL REFERENCES employees(id) ON DELETE CASCADE,
district_id VARCHAR(50) NOT NULL REFERENCES districts(id) ON DELETE CASCADE,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
PRIMARY KEY (employee_id, district_id)
);
CREATE INDEX IF NOT EXISTS idx_employee_districts_employee ON employee_districts(employee_id);
CREATE INDEX IF NOT EXISTS idx_employee_districts_district ON employee_districts(district_id);
COMMENT ON TABLE employee_districts IS 'Назначения сотрудников на участки; один сотрудник может быть на нескольких участках';
-- Перенос существующих назначений из employees.assigned_district_id
INSERT INTO employee_districts (employee_id, district_id)
SELECT id, assigned_district_id
FROM employees
WHERE assigned_district_id IS NOT NULL AND assigned_district_id <> ''
ON CONFLICT (employee_id, district_id) DO NOTHING;