|
|
|
Тарифы в БД
|
|||
|---|---|---|---|
|
#18+
Как правильно реализовать в БД выставление счетов клиентам? Счета выставляются на основе таблицы с почасовой наработкой в Mb. Тарифы сложные (наличие ночных скидок,скидок при большой наработке, различные абонплаты итд).Нужно ли писать какие-либо функции или можно обойтись SQL запросами из таблиц наработок и тарифов? Может у кого есть ссылки,как это правильно сделать? Буду оч благодарен за помощь,просто это моя первая "биллинговая система инет провайдера". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 07:00 |
|
||
|
Тарифы в БД
|
|||
|---|---|---|---|
|
#18+
Более конкретный вопрос.Имеется таблица: ip-адрес:inet наработка в Mb:double дата :timestamp Требуется посчитать дневной (с 06-00 до 01-00) и ночной (с 01-00 до 06-00) трафик по разным тарифам.Данные скидываются каждый час.Как можно написать запрос,чтобы работал с максимальной скаростью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 05:39 |
|
||
|
Тарифы в БД
|
|||
|---|---|---|---|
|
#18+
долго и подробно думать не хочется, но навскидку: завести ещё таблицу "Тарифные ставки" (термин только что придумал - можно поменять) 1. Название ставки (необязательно) 2. Время начала действия (минуты, часы, день недели и т.д.) 3. Время конца действия (---//---) 4. Дата начала действия (ставки периодически отменяются - это надо хранить) 5. Дата конца действия (---//---) 6. Значение ставки (некий коэффициент или просто цена за Мб) Один тариф в таком случае будет представлен набором(!) тарифных ставок покрывающим все сутки (или неделю/месяц). Получается, что твою первую таблицу (с траффиком) можно соединить с тарифными ставками по условию вхождения даты в ограничения ставки (поля 2..5) и сумму траффика умножить на ставку. Вот примерно так... с уважением, Дмитрий Жучков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 06:35 |
|
||
|
Тарифы в БД
|
|||
|---|---|---|---|
|
#18+
MSSQL. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Исходные данные с пред. обработкой: Номер договора Время входа Время выхода Трафик Время минут Ср.скорость12006-01-01 13:00:00.0002006-01-01 14:08:09.000500.0000687.352912006-01-02 01:09:00.0002006-01-02 14:08:09.0001502.00007791.928122006-01-01 13:00:00.0002006-01-01 14:08:09.0002.000068.029422006-01-04 01:00:00.0002006-01-04 02:58:49.000510.00001184.322022006-01-05 14:00:00.0002006-01-05 19:18:59.0009500.000031829.8742 Результат: Номер договораВремя минут в сумме Трафик в сумме Цена для счета12002.000084730.030000210012.0000504150.180000 ну там учет по времени и т.п., это уже нюансы, в принципе все решаемо из этого кода, только вместо таблицы #test у вас ввоя похожая таблица.. тариф вбит железно 0.015 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2006, 21:57 |
|
||
|
Тарифы в БД
|
|||
|---|---|---|---|
|
#18+
авторпросто это моя первая "биллинговая система инет провайдера". Светлая память этому провайдеру -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 13:01 |
|
||
|
Тарифы в БД
|
|||
|---|---|---|---|
|
#18+
tygra авторпросто это моя первая "биллинговая система инет провайдера". Светлая память этому провайдеру Все мы когда-то начинали ;))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2006, 13:11 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33706713&tid=1545279]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
144ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 407ms |

| 0 / 0 |
