Re[2]: Баланс клиента: хранить или вычислять
От: fplab Россия http://fplab.h10.ru http://fplab.blogspot.com/
Дата: 30.01.12 04:22
Оценка: +1
Здравствуйте, WMikhailov, Вы писали:

WM>Ну, и посмотрите на существующий удачный опыт (у сотовых операторов, у банков, у интернет-провайдеров) — баланс должен быть всегда доступен для клиента в его личном кабинете (а не скрыт) — ведь это _его_ деньги (и доверие конторе, и удобство, и т.д.)


Не скажу, как у сотовых операторов, а в известных мне банковских системах (за единственным известным исключением RS-Bank 5/5.5) баланс не хранится, а рассчитывается.
Понятие "доступности", вообще говоря, определено не строго. Клиенту, по большому счету до 3.1415926-ы, как именно он получает баланс: как сформированный по операциям, или как хранящийся в виде какого-то определенного, заранее рассчитанного, числа. Скорость получения этого числа определяется качеством ДНК программистов и администраторов БД. Кроме того, в последнем случае вам все равно никуда не деться от запросов к БД
Допустим, клиент пользовался своим пластиком 10 и 20 числа текущего месяца. Но он не обязан помнить точных дат совершения операций и поэтому вполне может запросить баланс по состоянию на 15 число. Но ведь данных на 15 число в БД нет. Понятно, что надо вернуть данные ближайшей меньшей даты, т.е. за 10-е. Для этого нужен дополнительный, не сложный, но все же SQL-запрос.
Не стоит плодить сущности сверх необходимого. Что можно не хранить — не храните. Все равно ведь есть таблица операций — вот по ней и вычисляйте баланс. При правильном подходе и грамотной реализации это занимает пустячное время.
Приходиться заниматься гадостью — зарабатывать на жизнь честным трудом (Б.Шоу)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.