Re: Versionning persistent entities
От: Miroff Россия  
Дата: 29.02.08 07:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Просьба поделиться опытом/накидать ссылок на реализацию версионности состояния сущностей. То есть при каждом новом апдейте сущности надо сохранять его предыдущее состояние, при этом в дальнейшем должна быть возможность просмотреть все предыдущие состояния и работать с произвольной выбранной версией. Используется mssql + nhibernate.


Существует всего два подхода:

1. хранить все версии
entity {
  id,
  date,
  /* fields */
}
primary_key entity (id, created)

Занимает много места, зато прост в реализации, быстр и удобен.

2. Хранить изменения
actual_entity {
  /* fields */
}

entity_changes {
  id,
  date,
  field,
  old_value,
  new_value
}

Занимает мало места, зато сложен в реализации, нетривиален в восстановлении предыдущей версии и требует размышлений над типом полей old_value и new_value.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.