Концепция связей
Связи — это механизм, который устанавливает логические отношения между записями реестров или справочников. Они позволяют:
Связать данные из разных объектов (например, товар → производитель → страна).
Обеспечить целостность информации (например, запретить удаление клиента с активными заказами).
Упростить навигацию и анализ данных (например, просмотр всех заказов клиента).
Зачем используются связи?
Целостность данных:
Запрет на удаление связанных записей (например, нельзя удалить страну, если она используется в справочнике производителей).
Автоматизация процессов:
Автоматическое обновление данных при изменении связанных объектов (например, изменение адреса клиента отразится во всех его заказах).
Удобство работы:
Быстрый переход к связанным записям из карточки объекта.
Гибкость:
Возможность создавать сложные иерархии (например, товар → категория → поставщик → страна).
Типы связей
В системе поддерживается три типа связей:
"Ссылка" - это простая связь между двумя записями. Ее особенности:
Связанные записи существуют независимо друг от друга.
Удаление одной записи не влияет на другую.
Пример: Связь между товаром и его производителем.
"Включение" - это связь между основным и подчиненным объектом. Ее особенности:
Подчиненный объект не может существовать без основного.
Удаление основного объекта приводит к удалению подчиненного.
Нельзя использовать совместно с другими типами связей для одного объекта.
Пример: Документ (основной объект) и его вложения (подчиненные объекты).
"Многие ко многим" - связь, где одной записи реестра-1 могут соответствовать несколько записей реестра-2, и наоборот. Ее особенности:
Реализуется через промежуточную таблицу с уникальными парами ключей.
Поддерживает период актуальности связи (например, срок действия договора).
Пример: Связь между студентами и курсами (один студент может посещать несколько курсов, один курс — иметь несколько студентов).
Отличия и применимость типов связей
Параметр |
Ссылка |
Включение |
Многие-ко-многим |
Зависимость |
Независимые записи |
Подчиненный объект зависит от основного |
Независимые записи |
Удаление |
Не влияет на связанные |
Удаляет подчиненные |
Не влияет на связанные |
Период актуальности |
Не поддерживается |
Не поддерживается |
Поддерживается |
Обязательность |
Можно сделать обязательной |
Нельзя сделать обязательной |
Можно сделать обязательной |
Использование |
Простые связи (1:1, 1:N) |
Иерархии (родитель → ребенок) |
Сложные связи (N:M) |
Примеры связей
Ссылка
Объекты: Реестр "Товары" ↔ Справочник "Страны".
Атрибут: "Производитель" (товар) → "Название страны" (справочник).
Цель: Определение страны-производителя для товара.
Включение
Объекты: Реестр "Договоры" ↔ Реестр "Приложения".
Связь: Договор (основной объект) включает приложения (подчиненные объекты).
Удаление договора автоматически удаляет все его приложения.
Многие-ко-многим
Объекты: Реестр "Сотрудники" ↔ Реестр "Проекты".
Связь: Сотрудник может участвовать в нескольких проектах, проект может иметь несколько сотрудников.
Цель: Учет нагрузки сотрудников и сроков участия в проектах.