Моделювання даних зі Steve: опановуємо стратегії контролю версій
Вступ:
У цьому блозі ми дослідимо два різні підходи до версіонування записів у моделюванні даних і поділимося думками та стратегіями, як ефективно керувати кількома версіями записів і їхніми пов’язаними дочірніми записами.
Ці стратегії необхідні проєктувальникам, що працюють над об’єктними моделями, де контроль версій критично важливий.
Розуміння підходів до версіонування записів
Є два основні підходи до версіонування записів:
- Підхід рівноправних записів
- Підхід дочірніх версій
Заглибмося в кожен підхід, щоб зрозуміти його реалізацію, переваги й недоліки.
Підхід рівноправних записів
У підході рівноправних записів кожна версія запису створюється як окремий, рівноправний запис під об’єктом верхнього рівня. Цей метод простий, і його ілюструє те, як Salesforce реалізує quotes під можливостями.

Реалізація:
Кожна версія — окремий запис під об’єктом верхнього рівня.
Один із записів можна позначити як основний, але всі версії видно в list views, пов’язаних списках і звітах.
Переваги:
- Просто й зрозуміло реалізувати.
Недоліки:
- Видно всі версії, тож їх важко розрізнити.
- Між різними версіями немає явного зв’язку чи журналу аудиту.
Без належного контролю може з’явитися кілька основних записів чи записів у роботі.
Підхід дочірніх версій
Підхід дочірніх версій передбачає два рівні об’єктів: батьківський об’єкт верхнього рівня і дочірній об’єкт для кожної версії. Такий підхід дає чисту систему версіонування й журналу змін.

Реалізація:
- Об’єкт верхнього рівня представляє конфігурацію, а дочірні об’єкти — кожну версію.
- Кожна дочірня версія автоматично нумерується й має статус (наприклад, архівна, активна, очікує).
- Активна версія заблокована й використовується в production, а чернетку можна редагувати.
- Після активації чернетка стає активною, а попередня активна версія архівується.
Переваги:
- Дає чіткий журнал аудиту й історичну документацію.
- Гарантує лише одну активну версію одночасно.
- Архівні записи слугують незмінними історичними записами.
Недоліки:
- Деяким користувачам може здатися складним, але це необхідно для важливих процесів, як-от flows.
Приклад реалізації в Salesforce

Salesforce реалізує схожий підхід із flows. У Salesforce є об’єкт flow верхнього рівня з дочірніми версіями flow. Кожна версія автоматично нумерується, що дає детальну історію кожного flow, дати його створення й активації.
Така реалізація гарантує, що одночасно активний лише один flow, і дає надійний та ефективний механізм контролю версій.
Розділ 5: висновок
Розуміння й вибір правильного підходу до версіонування записів критично важливі в моделюванні даних. Підхід рівноправних записів простий, а підхід дочірніх версій дає більше контролю й ефективний журнал аудиту. Вивчивши реалізацію Salesforce і зваживши ваші конкретні виклики моделювання даних, ви зможете обрати підхід, що найкраще відповідає вашим потребам.
Слідкуйте за новинами!
Більше думок і порад — тут, на www.SteveTechArc.com, і на YouTube-каналі @SteveTechArc (opens in a new tab). Підпишіться й розвивайте з нами майстерність моделювання даних!
Допомагаю змінювати світ, ділячись цікавими думками з колегами-архітекторами і тими, хто йде до архітектури!
Транскрипт оброблено за допомогою ШІ
STA 2.1