Steve Data Modeling: осваиваем стратегии управления версиями
Введение:
В этой статье мы рассмотрим два разных подхода к версионированию записей в моделировании данных и поделимся идеями и стратегиями для эффективного управления несколькими версиями записей и их дочерними записями.
Эти стратегии важны для тех, кто проектирует объектные модели, где управление версиями критически важно.
Подходы к версионированию записей
Существует два основных подхода к версионированию записей:
- Равноправные записи
- Дочерние версии
Рассмотрим каждый подход подробнее: как он реализуется, какие у него преимущества и недостатки.
Равноправные записи
При подходе с равноправными записями каждая версия записи создается как отдельная равноценная запись под объектом верхнего уровня. Этот способ прост, и пример тому — то, как Salesforce реализует предложения (Quote) под возможностями.

Реализация:
Каждая версия — отдельная запись под объектом верхнего уровня.
Одну из записей можно отметить как основную, но все версии видны в представлениях списков, связанных списках и отчетах.
Преимущества:
- Просто и понятно в реализации.
Недостатки:
- Видны все версии, поэтому их трудно различать.
- Между версиями нет явной связи или журнала аудита.
Без надлежащего контроля может оказаться несколько основных записей или записей в работе.
Дочерние версии
Подход с дочерними версиями предполагает два уровня объектов: родительский объект верхнего уровня и дочерний объект для каждой версии. Это дает чистое версионирование и журнал изменений.

Реализация:
- Объект верхнего уровня представляет конфигурацию, а дочерние объекты — каждую версию.
- Номер каждой дочерней версии увеличивается автоматически, и у нее есть статус (например, архивная, активная, ожидающая).
- Активная версия заблокирована и используется в рабочей среде, а черновую версию можно редактировать.
- При активации черновика он становится активным, а предыдущая активная версия архивируется.
Преимущества:
- Дает понятный журнал аудита и историческую документацию.
- Гарантирует, что в каждый момент активна только одна версия.
- Архивные записи служат неизменной историей.
Недостатки:
- Некоторым пользователям это может показаться сложным, но для важных процессов, например потоков, это необходимо.
Пример реализации в Salesforce

Salesforce применяет похожий подход к потокам. В Salesforce есть объект потока верхнего уровня с дочерними версиями потока. Номер каждой версии увеличивается автоматически, что дает подробную историю каждого потока, даты его создания и активации.
Такая реализация гарантирует, что в каждый момент активен только один поток, и обеспечивает надежное и эффективное управление версиями.
Раздел 5: заключение
Понимать и правильно выбирать подход к версионированию записей крайне важно в моделировании данных. Равноправные записи — это просто, но дочерние версии дают больше контроля и эффективный журнал аудита. Изучив реализацию в Salesforce и учтя особенности своей модели данных, вы сможете выбрать подход, который лучше всего подходит под ваши задачи.
Следите за новостями!
Больше идей и советов ищите здесь, на www.SteveTechArc.com, и на YouTube-канале @SteveTechArc (opens in a new tab). Подписывайтесь и оттачивайте мастерство моделирования данных вместе с нами!
Помогаем менять мир, делясь интересными мыслями с коллегами-архитекторами и теми, кто идет по пути к профессии архитектора!
Расшифровка сделана с помощью ИИ
STA 2.1