Вот сделка / вызов,
Мы должны отслеживать информацию и ее линейные изменения. Мы также должны отслеживать изменения, которые вышли за пределы последовательности. Например, А произошло тогда, Б случилось. Некоторое время спустя мы узнаем о C, который на самом деле произошел до B. Наряду с этим испытанием у нас есть много объектов, которые должны быть версионированы и привязаны друг к другу. Если бы это была одна таблица / объект, который должен был быть версионирован ... ничего страшного. Но, с несколькими объектами, теперь мы получаем более сложные связи. И, добавление концепции вне последовательности событий просто усложняет вещи.
При проверке кода вы не можете делать это вне последовательности. Вещи случаются, а затем вы исправляете / улучшаете их. Однако в некоторых системах вы не получаете всю информацию во время события или в линейном порядке. Тем не менее, вам все еще необходимо рассчитать временную шкалу реального события, даже если она отличалась от временной шкалы, в которую вы получили информацию.
Краткий пример иерархии: (каждый объект должен быть версионным)
- Политика
- Транзакция (Дата реального изменения)
- Покрытие (я)
- Местоположение (я)
- Покрытие (я)
- Транспортное средство (а)
- Яда Яда Яда
С точки зрения, если мне нужно получить доступ к текущей политике, я должен видеть все как есть. Однако, если мне нужно увидеть, что было изменено как часть транзакции 3 недели назад, я должен иметь возможность увидеть, что было раньше ... что именно было изменено ... затем то, что было после изменения.
Я написал шаблон, чтобы попытаться решить все это, в то же время пытаясь сохранить только измененную информацию (не дублируя весь стек каждый раз, когда изменялась версия), что я считал обычной практикой при попытке решить эту проблему). Я просматривал веб-сайты и уже хорошо знаком со всеми шаблонами GoF и некоторыми другими. Тем не менее, либо я скучаю по лодке и слишком усложняюсь, либо я один из немногих людей, которым приходится сталкиваться с такой ситуацией.
Я опубликую шаблон, который я разработал, как только смогу. Во-первых, ваши идеи и мудрость. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь спрашивать. Спасибо за ваше время!