Отношения многие-ко-многим

Отношения многие-ко-многим

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

Предположим, в базе данных есть три таблицы: employees, territories и employee_territories.

Таблица employee_territories содержит две колонки внешних ключей: employee_id и territory_id.

Если загрузить данные из таблицы employee_territories без фильтрации, отобразятся только актуальные записи, например:

employee_idterritory_id_State_
Employee 1Territory 1
Employee 1Territory 2
Employee 2Territory 3

Надстройка добавляет колонку _State_ типа чек-бокс, чтобы удобно добавлять или удалять отношения по двойному клику.

Вы можете создать сводную таблицу, используя таблицу данных Excel в качестве источника. Разместите поля внешних ключей по осям, а сумму колонки _State_ в ячейках.

Таблица будет выглядеть примерно так:

Territory 1Territory 2Territory 3
Employee 1
Employee 2
Employee 3

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

Возвращаясь к таблице, вы можете выбрать значение на ленте. Например, если выбрать Territory 1, таблица будет выглядеть так:

employee_idterritory_id_State_
Employee 1Territory 1
Employee 2Territory 1x
Employee 3Territory 1x

В колонке _State_ можно кликать, чтобы добавлять или удалять отношения.

Если выбрать Employee 1, таблица будет выглядеть примерно так:

employee_idterritory_id_State_
Employee 1Territory 1
Employee 1Territory 2
Employee 1Territory 3x

Для реализации этих возможностей надстройка автоматически создает следующую конфигурацию, читая метаданные базы данных:

IDTABLE_SCHEMATABLE_NAMECOLUMN_NAMEEVENT_NAMEHANDLER_SCHEMAHANDLER_NAMEHANDLER_TYPEHANDLER_CODE
 s07employee_territoriesemployee_idValidationLists07employeesTABLE[employee_id],[last_name]
 s07employee_territoriesterritory_idValidationLists07territoriesTABLE[territory_id],[territory_description]
 s07employee_territoriesemployee_idManyToManyATTRIBUTE
 s07employee_territoriesterritory_idManyToManyATTRIBUTE
 s07employee_territoriesAddStateColumnATTRIBUTE

В таблице используется тип ManyToMany для колонок внешнего ключа. Также применяется тип AddStateColumn для добавления колонки _State_. Списки значений создаются из таблиц первичных ключей.

Вы можете создавать такие настройки для любых других объектов, например, для представлений и хранимых процедур. Если нужно отключить автоматическое создание конфигураций, используйте тип DoNotAddManyToMany в таблице xls.handlers.

Этот веб-сайт использует куки. Продолжая использовать веб-сайт, Вы принимаете условия Политики защиты персональных данных.