Alexzzy
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Dronton2 С интернет-магазинами общался. В практике программирования с интернет-магазинами не сталкивался, и с оплатой покупок бонусами тоже. Это не важно. Главное - уметь представить любую задачу в реляционном виде. Интернет-магазин - это просто. Написанное мною выплывает подсознательно на этапе чтения. Цитата: И на вопрос "сколько бонусов списать для оплаты текущей покупки?", покупатель (или менеджер) хотят указать одно число, а не разбивать списываемые бонусы на десятки записей с привязкой к соответствующим записям начислений. | Да, одно число, которое идет на вход хранимой процедуры (желательно). Цитата: Получается, что если покупатель указывает количество списываемых бонусов одним числом, то таблица списания, которая разбивает и привязывает списание к записям начислений - расчётная, записи в которой создаются автоматически. | Если правильно понял, то да. Но, тут именно разбиение, а не агрегированный расчет. "Расчетная таблица" это довольно условное понятие. Главное, что здесь нет агрегированных данных. Кратко про процедуру списания: 1. Открываем курсор в разрезе каждого начисления с оставшейся/доступной суммой для списания, ограничив по дате и отсортировав по дате срока действия. 2. В цикле списываем "потихоньку" требуемое количество бонусов, не больше чем оставшаяся доступная сумма по начислению, вставляя данные в таблицу списания. Всё! При этом все манипуляции (включая любые последующие) с данными довольно просты и универсальны. | Всего записей: 1474 | Зарегистр. 10-07-2013 | Отправлено: 20:27 30-10-2017 | Исправлено: Alexzzy, 22:14 30-10-2017 |
|