В одной из наших баз данных мы различали записи transactional
и dictionary
.
В двух словах transactional
записи - это вещи, которые вы не можете откатить в реальной жизни, например, звонок от клиента. Вы можете изменить имя вызывающего абонента, его статус и т. Д., Но вы не можете отклонить сам вызов.
Dictionary
записи - это вещи, которые вы можете изменить, например, присвоение city
клиенту.
Transactional
записи и все, что к ним приводит , никогда не удалялись, тогда как dictionary
записи можно было удалить полностью.
Под «вещами, которые к ним ведут» я подразумеваю, что как только запись появляется в бизнес-правилах, которые могут привести к записи transactional
, эта запись также становится transactional
.
Например, city
можно удалить из базы данных. Но когда появилось правило, которое гласило: «отправить SMS
всем клиентам в Москве », города также стали рекордными transactional
, иначе мы не смогли бы ответить на вопрос «почему это произошло? SMS
отправить ".
Практическое правило различения было таким: это только дело моей компании?
Если один из моих сотрудников принял решение на основе данных из базы данных (например, он сделал отчет, на основании которого было принято какое-то управленческое решение, а затем отчет о данных был основан на исчезнувших), было сочтено возможным удалить «ОК». эти данные.
Но если решение повлияло на некоторые немедленные действия с клиентами (например, вызов, изменение баланса клиента и т. Д.), Все, что привело к этим решениям, было сохранено навсегда.
Может варьироваться от одной бизнес-модели к другой: иногда может потребоваться запись даже внутренних данных, иногда можно удалить данные, влияющие на внешний мир.
Но для нашей бизнес-модели правило сверху работало нормально.