Присоединяйтесь!

Основы построения реляционных связей в базе СБИС

Основы построения реляционных связей в базе СБИС

Рекомендуем использовать для сдачи отчетности онлайн-версию СБИС. Она удобнее, не требует обновления, имеет больше функций — ЭДО, «Все о компаниях и владельцах», ОФД и ЕГАИС, «Торги и закупки», а также обладает рядом других преимуществ.

Любая запись в одной таблице может быть связана с любой записью другой таблицы. Система управления базой данных, используемая в СБИС, позволяет организовать несколько различных типов связей между таблицами.

Связь «Один к одному»

Каждая запись в одной таблице соответствует только одной записи в другой таблице.
Этот тип связи используется редко, обычно с целью оптимизации работы базы данных.

Например, чтобы постоянно «не таскать» все данные о сотруднике (а их достаточно много), таблица «Сотрудники» разбита на две - «Сотрудники» и «Сотрудники (расширение)». В первой хранится ФИО, во второй все данные по сотруднику (ИНН, СНИЛС, серия и номер паспорта и пр.).
Записи этих таблиц связаны между собой отношением «один к одному». Т.е. сотруднику с ФИО Алексеев Алкесей Алексеевич соответствуют одна конкретная запись с паспортными данными, и, с другой стороны, эти паспортные данные могут быть связаны только с данным сотрудником.

Для организации такой связи в обе таблицы помещается поле, содержащее адрес записи другой таблицы.

Связь «Один ко многим»/ «Многие к одному»

На одну запись в таблице может ссылаться несколько записей из другой таблицы.
Данный тип связи является одним из самых распространенных.

Реализуется этот тип связи следующим образом:

  • в таблице со стороны «один» помещается поле нулевой длины;
  • в таблице со стороны «многие» помещается поле, содержащее адрес связанной записи.

Например, по одной организации в базе есть несколько отчетов. В таблицах базы данных это выглядит так:

  • таблица Лица: организация ООО 'Золотое дно' имеет адрес 00003B43
  • таблица Документы: сразу несколько записей по графе Лицо 2 ссылается на запись с адресом 00003B43

Условная связь

Фактически, это отношение «один к одному», но у записи, помимо ссылки в другую таблицу, указывается еще и код таблицы.

Наилучшим примером таких связей служит таблица Документы:
В графе Документы_ указываются ссылки на записи в различных таблицах (Формы отчетности, Отправленная отчетность, Различные документы). В самих же таблицах указывается только адрес записи.

Иерархия

Это несколько специфичная связь, поскольку в ней участвует только одна таблица. Фактически это отношение записей «один ко многим», но внутри одной таблицы.
В таблицу помещается поле, содержащее адрес записи узла иерархии, в котором находится данная запись (4 байта) и, возможно, один байт, указывающий, является ли сама запись узлом, скрытым узлом или листом иерархии. Напомним, что узел и скрытый узел - это запись, на которую могут ссылаться другие записи, а лист - это запись, на которую не ссылается никакая другая запись иерархии.

Например, в справочнике организаций раздел справочника - это узел, а карточка организации - это лист.
В отчетности: реестр ПФР - это узел, комплект документов ПФ - скрытый узел, индивидуальное сведение на конкретного сотрудника - лист.

Записи, находящиеся в «корне» иерархии (то есть в самом верхнем уровне), содержат вместо адреса узла специальное зарезервированное значение - FFFFFFF6 (корень). В СБИС после адреса связанной записи узел иерархии помечается буквой «у», а скрытый узел - «с». Если же запись ссылается на «корень» иерархии, то вместо шестнадцатеричного адреса будет стоять строка «корень».

Нашли неточность? Выделите текст с ошибкой и нажмите ctrl + enter.