To tylko przypadkowa idea, o którą się zastanawiałem. Czy istnieją ORM lub bazy danych, które natywnie obsługują historię śledzenia? Wyobrażam sobie, że w każdym wierszu znajduje się złożony klucz podstawowy z identyfikatorem i wersją. Aktualizacja "doda" nowy wiersz z tym samym identyfikatorem i następnym dostępnym numerem wersji. Normalny wybór zwraca tylko najnowszą wersję unikalnie zidentyfikowanego wiersza, ale "SelectHistory" zwróci wszystkie wiersze. Usunięcie byłoby natywnie miękkie.ORM lub baza danych, która działa jak kontrola wersji i śledzi historię
Biorąc pod uwagę, że nie jest to nowy problem i że nie ma nic nowego pod słońcem, to uderzyło mnie, że istnieje duże prawdopodobieństwo, że ktoś już zaprojektował eleganckie rozwiązanie, które Abstracts twarde części tego z dala, i że mógł zrobić w warstwie bazy danych lub warstwie ORM.
Mam istniejącą aplikację zbudowaną na Entity Framework. Zastępuje metodę SaveChanges w DbContext, aby ustawić właściwości CreatedBy/CreatedDate/ModifiedBy/ModifiedDate dla każdej nowej/zmienionej jednostki. Klient zapytał ostatnio, ile pracy wymagałoby dodanie śledzenia całej historii. Podałem rozsądne szacunki na podstawie wcześniejszych doświadczeń z podobnymi systemami. Moje oszacowanie dotyczyło dodania dodatkowych elementów do modelu i logiki warstwy biznesowej w celu zapełnienia tych elementów. Klient zdecydował się nie wykonywać tej pracy, ale zastanawiałem się, czy istnieje lepszy sposób. Czy istnieje lepsze rozwiązanie z Entity Framework? Czy istnieją lepsze rozwiązania z innymi architekturami?
Podjąłem inną kwestię w tej sprawie, aby sprawdzić wersję naszych baz danych wordpress. To, co zrobiłem, było nocnym zrzutem mysqladmin do wersjonowanego katalogu roboczego. Po zakończeniu zrzutu po prostu zatwierdziłbym zmiany. – B2K