Modelowanie danych ze Steve’em: strategie kontroli wersji
Wprowadzenie:
W tym wpisie przyjrzymy się dwóm różnym podejściom do wersjonowania rekordów w modelowaniu danych i podzielimy się spostrzeżeniami i strategiami sprawnego zarządzania wieloma wersjami rekordów i powiązanymi z nimi rekordami podrzędnymi.
Te strategie są niezbędne dla projektantów pracujących nad modelami obiektów, w których kontrola wersji jest kluczowa.
Podejścia do wersjonowania rekordów
Są dwa główne podejścia do wersjonowania rekordów:
- Podejście rekordów równorzędnych
- Podejście wersji podrzędnych
Przyjrzyjmy się bliżej każdemu z nich, żeby zrozumieć ich implementację, zalety i wady.
Podejście rekordów równorzędnych
W podejściu rekordów równorzędnych każda wersja rekordu jest tworzona jako osobny, równorzędny rekord pod obiektem najwyższego poziomu. Ta metoda jest prosta, a jej przykładem jest to, jak Salesforce implementuje oferty (quotes) pod szansami sprzedaży.

Implementacja:
Każda wersja to osobny rekord pod obiektem najwyższego poziomu.
Jeden z rekordów możesz oznaczyć jako główny, ale wszystkie wersje są widoczne w widokach list, listach powiązanych rekordów i raportach.
Zalety:
- Proste i łatwe do wdrożenia.
Wady:
- Wszystkie wersje są widoczne, co utrudnia ich rozróżnienie.
- Nie ma wyraźnego powiązania ani ścieżki audytu między różnymi wersjami.
Bez odpowiedniego egzekwowania może pojawić się kilka rekordów głównych albo w toku.
Podejście wersji podrzędnych
Podejście wersji podrzędnych polega na utworzeniu dwóch poziomów obiektów: obiektu nadrzędnego najwyższego poziomu i obiektu podrzędnego dla każdej wersji. To podejście pozwala na czyste wersjonowanie i dziennik zmian.

Implementacja:
- Obiekt najwyższego poziomu odwzorowuje konfigurację, a obiekty podrzędne odwzorowują poszczególne wersje.
- Każda wersja podrzędna ma automatycznie zwiększany numer i status (np. zarchiwizowana, aktywna, oczekująca).
- Wersja aktywna jest zablokowana i używana na produkcji, a wersję roboczą można edytować.
- Po aktywacji wersja robocza staje się aktywna, a poprzednia aktywna wersja zostaje zarchiwizowana.
Zalety:
- Daje wyraźną ścieżkę audytu i dokumentację historyczną.
- Zapewnia, że naraz aktywna jest tylko jedna wersja.
- Zarchiwizowane rekordy służą jako niezmienione zapisy historyczne.
Wady:
- Dla niektórych użytkowników może wydawać się złożone, ale jest niezbędne przy ważnych procesach, takich jak Flow.
Przykład implementacji w Salesforce

Salesforce stosuje podobne podejście w Flow. W Salesforce jest obiekt Flow najwyższego poziomu z podrzędnymi wersjami Flow. Każda wersja ma automatycznie zwiększany numer, co daje szczegółowy zapis historyczny każdego Flow, z datami utworzenia i aktywacji.
Ta implementacja zapewnia, że naraz aktywny jest tylko jeden Flow, i daje niezawodny i sprawny mechanizm kontroli wersji.
Część 5: podsumowanie
Zrozumienie i wybór właściwego podejścia do wersjonowania rekordów jest kluczowe w modelowaniu danych. Podejście rekordów równorzędnych jest proste, a podejście wersji podrzędnych daje większą kontrolę i sprawną ścieżkę audytu. Studiując implementację Salesforce i biorąc pod uwagę własne wyzwania w modelowaniu danych, możesz wybrać podejście, które najlepiej pasuje do twoich potrzeb.
Bądźmy w kontakcie!
Więcej spostrzeżeń i wskazówek znajdziesz tutaj, na www.SteveTechArc.com, i na kanale YouTube @SteveTechArc (opens in a new tab). Zasubskrybuj i rozwijaj z nami swój talent do modelowania danych!
Pomagam zmieniać świat, dzieląc się ciekawymi przemyśleniami z innymi architektami i z tymi, którzy są na drodze do architektury!
STA 2.1