Вопрос

Добавить свойство для справочных полей

Идея состоит в том, чтобы добавить свойство "Затирать при удалении записи" (или что-то вроде того) для справочных полей. Например, в случае удаления Контрагента поле Контрагент у контактов, ранее принадлежащих этому контрагенту, затирается, лучше, пожалуй, с предупреждением. Каскадные связи не всегда подходят, а невозможность просто удалить запись не всегда уместна.
Вот пара кейсов:
1) К продаже, инциденту или какой другой сущности привязывает статья БЗ. Но по прошествии времени эта статья удаляется или сливается с какими-то другими (а механизма кастомного слияния нет). Пользователю придется перерывать все записи, ссылающиеся на эту статью и затирать это поле вручную. Каскадная связь с удалением здесь, очевидно, не подходит.
2) Для Договора добавлены справочные поля для последних активных Доп. соглашений, чтобы можно было формировать печатные формы (Word) на эти ДС прямо с основного договора. В результате либо появятся цикличные зависимости, либо мусорные данные и как следствие всякие сложности с ними, если вообще не контролировать целостность на этих полях.

Со стороны SQL это очень очень просто делается - указывается ON DELETE SET NULL для CONSTRAINT'ов

Нравится

0 комментариев
Показать все комментарии