Перекладено ШІ. Спільнота ще не перевірила. Читати англійською

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

Моделювання даних зі Steve: опановуємо стратегії контролю версій

Вступ:

У цьому блозі ми дослідимо два різні підходи до версіонування записів у моделюванні даних і поділимося думками та стратегіями, як ефективно керувати кількома версіями записів і їхніми пов’язаними дочірніми записами.

Ці стратегії необхідні проєктувальникам, що працюють над об’єктними моделями, де контроль версій критично важливий.

Розуміння підходів до версіонування записів

Є два основні підходи до версіонування записів:

  1. Підхід рівноправних записів
  2. Підхід дочірніх версій

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

Підхід рівноправних записів

У підході рівноправних записів кожна версія запису створюється як окремий, рівноправний запис під об’єктом верхнього рівня. Цей метод простий, і його ілюструє те, як Salesforce реалізує quotes під можливостями.

Варіант 1, рівноправні записи: кожна версія — окремий Quote під Opportunity. Перевага: проста модель. Недоліки: кожна версія видна в list views і звітах, записи не пов’язані явно, і кілька з них можуть бути активними чи чернетками одночасно

Реалізація:

Кожна версія — окремий запис під об’єктом верхнього рівня.

Один із записів можна позначити як основний, але всі версії видно в list views, пов’язаних списках і звітах.

Переваги:

Недоліки:

Без належного контролю може з’явитися кілька основних записів чи записів у роботі.

Підхід дочірніх версій

Підхід дочірніх версій передбачає два рівні об’єктів: батьківський об’єкт верхнього рівня і дочірній об’єкт для кожної версії. Такий підхід дає чисту систему версіонування й журналу змін.

Варіант 2, дочірні версії: один батьківський Configuration з дочірніми Configuration Version і їхніми власними дочірніми об’єктами. Переваги: чітке версіонування й історія змін, лише одна активна версія, архівні версії не можна змінити. Недоліки: складніша модель, а правила статусів треба забезпечувати

Реалізація:

  1. Об’єкт верхнього рівня представляє конфігурацію, а дочірні об’єкти — кожну версію.
  2. Кожна дочірня версія автоматично нумерується й має статус (наприклад, архівна, активна, очікує).
  3. Активна версія заблокована й використовується в production, а чернетку можна редагувати.
  4. Після активації чернетка стає активною, а попередня активна версія архівується.

Переваги:

Недоліки:

Приклад реалізації в Salesforce

Скриншот: сторінка подробиць flow у Salesforce зі списком версій flow, одна з яких активна

Salesforce реалізує схожий підхід із flows. У Salesforce є об’єкт flow верхнього рівня з дочірніми версіями flow. Кожна версія автоматично нумерується, що дає детальну історію кожного flow, дати його створення й активації.

Така реалізація гарантує, що одночасно активний лише один flow, і дає надійний та ефективний механізм контролю версій.

Розділ 5: висновок

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

Слідкуйте за новинами!

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

Допомагаю змінювати світ, ділячись цікавими думками з колегами-архітекторами і тими, хто йде до архітектури!

Транскрипт оброблено за допомогою ШІ

STA 2.1