Переведено ИИ. Сообщество еще не проверило перевод. Читать на английском

Блог · 8 сентября 2023 г. · Steve Simpson · Архитектура данных

Steve Data Modeling: осваиваем стратегии управления версиями

Введение:

В этой статье мы рассмотрим два разных подхода к версионированию записей в моделировании данных и поделимся идеями и стратегиями для эффективного управления несколькими версиями записей и их дочерними записями.

Эти стратегии важны для тех, кто проектирует объектные модели, где управление версиями критически важно.

Подходы к версионированию записей

Существует два основных подхода к версионированию записей:

  1. Равноправные записи
  2. Дочерние версии

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

Равноправные записи

При подходе с равноправными записями каждая версия записи создается как отдельная равноценная запись под объектом верхнего уровня. Этот способ прост, и пример тому — то, как Salesforce реализует предложения (Quote) под возможностями.

Вариант 1: равноправные записи — каждая версия является отдельным предложением (Quote) под возможностью (Opportunity). Преимущество: простая модель. Недостатки: все версии видны в представлениях списков и отчетах, записи явно не связаны, и активными или черновиками одновременно могут быть несколько

Реализация:

Каждая версия — отдельная запись под объектом верхнего уровня.

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

Преимущества:

Недостатки:

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

Дочерние версии

Подход с дочерними версиями предполагает два уровня объектов: родительский объект верхнего уровня и дочерний объект для каждой версии. Это дает чистое версионирование и журнал изменений.

Вариант 2: дочерние версии — один родительский объект Configuration с дочерними Configuration Version и их собственными дочерними объектами. Преимущества: понятное версионирование и история изменений, только одна активная версия, архивные версии нельзя изменить. Недостатки: более сложная модель, и правила статусов нужно соблюдать принудительно

Реализация:

  1. Объект верхнего уровня представляет конфигурацию, а дочерние объекты — каждую версию.
  2. Номер каждой дочерней версии увеличивается автоматически, и у нее есть статус (например, архивная, активная, ожидающая).
  3. Активная версия заблокирована и используется в рабочей среде, а черновую версию можно редактировать.
  4. При активации черновика он становится активным, а предыдущая активная версия архивируется.

Преимущества:

Недостатки:

Пример реализации в Salesforce

Снимок экрана: страница сведений о потоке в Salesforce со списком версий потока, одна из которых активна

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

Такая реализация гарантирует, что в каждый момент активен только один поток, и обеспечивает надежное и эффективное управление версиями.

Раздел 5: заключение

Понимать и правильно выбирать подход к версионированию записей крайне важно в моделировании данных. Равноправные записи — это просто, но дочерние версии дают больше контроля и эффективный журнал аудита. Изучив реализацию в Salesforce и учтя особенности своей модели данных, вы сможете выбрать подход, который лучше всего подходит под ваши задачи.

Следите за новостями!

Больше идей и советов ищите здесь, на www.SteveTechArc.com, и на YouTube-канале @SteveTechArc (opens in a new tab). Подписывайтесь и оттачивайте мастерство моделирования данных вместе с нами!

Помогаем менять мир, делясь интересными мыслями с коллегами-архитекторами и теми, кто идет по пути к профессии архитектора!

Расшифровка сделана с помощью ИИ

STA 2.1