У меня есть приложение rails, которое отслеживает владельцев членских карт и должно сообщать о статусе владельца карты. Статус определяется - в соответствии с бизнес-правилом - как «с хорошей репутацией», «с задолженностью» или «отменен», в зависимости от того, был ли оплачен последний счет держателя карты.
Счета отправляются за 30 дней, поэтому клиент, которому только что был выставлен счет, все еще находится в хорошем состоянии, тот, кто просрочил срок оплаты в 20 дней, имеет задолженность, а участник, который не оплатил свой счет более чем 30 дней после этого будут отменены.
Я ищу совет о том, было бы лучше сохранить текущий статус владельца карты в качестве поля на уровне клиента (и справиться с потенциальными аномалиями обновления, возникающими в результате потенциального обновления записей счета-фактуры, без обновления соответствующей записи владельца карты) или имеет ли смысл просто рассчитывать текущий статус владельца карты на основе данных в базе данных каждый раз, когда запрашивается статус (что может привести к большой нагрузке на базу данных и замедлить работу приложения).
Рекомендации? Или другие идеи, о которых я не задумывался?
Одно важное ограничение: хотя маловероятно, что кто-либо будет изменять базу данных напрямую, такая возможность всегда есть, поэтому мне нужно попытаться применить некоторые меры предосторожности, чтобы предотвратить несовпадение различных записей базы данных.