Добавить комментарий

По проводке и балансу.

[quote=Serguei_Tarassov]

Таблицы проводок и баланса кратко описаны в комментарии выше, более подробная реализация в статье.

Например, понадобилось подсчитать сумму оказанных клиенту услуг. Это можно сделать одним запросом без соединений по таблице проводок (псевдокод):

SELECT SUM(Сумма) 
FROM Проводки 
WHERE Клиент = 'Иванов' 
      AND Счет = 'С1' 
      AND Тип_док IN ('Звонок', 'СМС', 'Переадресация')

[/quote]
select sum(amount) from bill.trx
where id_contract=200 and sid_trxtype in ('charge', 'discount');

bill.trx как раз отвечает за проводки. Счет я думаю добавлять не требуется, так-как проще считать что в счет в биллинге один и выражается через bill.trx

[quote=Serguei_Tarassov]

Добавив в таблицы "Проводки" и "Баланс" колонку "Количество" вы сможете делать то же самое чтобы, например, узнать количество минут голосовой связи, только еще проще:
[/quote]
А для платежа в количество единицу класть?

[quote=Serguei_Tarassov]

SELECT Количество -- хранится нарастающим итогом
FROM Баланс
WHERE Клиент = 'Иванов' 
      AND Период = <текущий>
      AND Счет = 'С2' 
      AND Тип_док IN ('Звонок')

Попробуйте посчитать это по первичке.[/quote]
По bill.trx будет тоже самое что выше, только с группировкой. В целом полезно так-как уменьшает нагрузку на биллинг.