powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектрование таблиц для хранния тарифов
12 сообщений из 12, страница 1 из 1
Проектрование таблиц для хранния тарифов
    #34841539
postuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как лучше организовать таблицу, в которой будут храниться скидки в зависимости от объемов скачанного трафика?
Например,
до 100 Мб - X руб;
до 200 Мб - Y руб
...
Желательно, чтобы это позволяло изменять пороги трафика и чтобы на каждом тарифе можно было вводить свои пороги, но не в ущерб быстродействию.
...
Рейтинг: 0 / 0
Проектрование таблиц для хранния тарифов
    #34841878
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таблица из трех полей.
1. MIN_VALUE
2. MAX_VALUE
3. DISCOUNT
...
Рейтинг: 0 / 0
Проектрование таблиц для хранния тарифов
    #34842167
KGP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey888таблица из трех полей.
1. MIN_VALUE
2. MAX_VALUE
3. DISCOUNT

Автор намекал на "на каждом тарифе", значит либо надо добавить id pk и потом дополнительно связывать с чем-то.

to postuser :
1. есть ли понятие накопительной скидки, исключительность скидок?
2. тариффикация производиться ДО или ПОСЛЕ скачивания?
3. мера только объем траффика и тариф или есть ещё что-то, предполагается ли ещё что-то
4. есть ли разработанная бизнес-концепция предоставления скидок?
...
Рейтинг: 0 / 0
Проектрование таблиц для хранния тарифов
    #34842512
postuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KGP sergey888таблица из трех полей.
1. MIN_VALUE
2. MAX_VALUE
3. DISCOUNT

Автор намекал на "на каждом тарифе", значит либо надо добавить id pk и потом дополнительно связывать с чем-то.

to postuser :
1. есть ли понятие накопительной скидки, исключительность скидок?
2. тариффикация производиться ДО или ПОСЛЕ скачивания?
3. мера только объем траффика и тариф или есть ещё что-то, предполагается ли ещё что-то
4. есть ли разработанная бизнес-концепция предоставления скидок?
На действующих тарифных планах скидка расчитывается в зависимости от объемов потребленного трафика за месяц (расчетнй период), то есть, если клиент скачал >200 Мб <300 Мб, то весь трафик считается именно по цене от 200 до 300. Тарификация проводится в конце месяца. Но на новых тарифных планах планируется введение предоплатной системы расчетов и расчет стоимости будет проводиться почти в реальном времени. Нужло ли авансовые и кредитные тарифы хранить в разных таблицах или можно придумать одну структура для них? На большинстве тарифов есть включенный трафик. Четкой концепции нет.
...
Рейтинг: 0 / 0
Проектрование таблиц для хранния тарифов
    #34842513
postuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergey888таблица из трех полей.
1. MIN_VALUE
2. MAX_VALUE
3. DISCOUNT
Как при этом оптимально написать запрос с проверкой попадания в этот интервал, до написания в форуме сделал подобную схему, но с такой таблицей не очень удобно работать, особенно если делать предоплатные тарифы.
...
Рейтинг: 0 / 0
Проектрование таблиц для хранния тарифов
    #34842702
KGP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
postuserЧеткой концепции нет.
Тогда методом анализа/статистики текущих и уже планируемых тарифных планов создайте эту концепцию, а ещё лучше уточните у бизнес-сотрудника вашего.
...
Рейтинг: 0 / 0
Проектрование таблиц для хранния тарифов
    #34842784
sergey888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
postuser sergey888таблица из трех полей.
1. MIN_VALUE
2. MAX_VALUE
3. DISCOUNT
Как при этом оптимально написать запрос с проверкой попадания в этот интервал, до написания в форуме сделал подобную схему, но с такой таблицей не очень удобно работать, особенно если делать предоплатные тарифы.

select discount from tarif where minvalue<=:val and maxvalue>=:val
...
Рейтинг: 0 / 0
Проектрование таблиц для хранния тарифов
    #34878284
postuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как лучше поступить для предоставления детализации счета (сколько денег снялось за отдельные виды трафика, сколько снято абонплаты ит.д.):
1) при снятии денег с лицевого счета вести лог списываний в отдельной таблице с полями сумма списания, услуга, дата;
2) рассчитывать списания по данным о трафике, расчетных периодов и времени работы клиента за месяц для определения абонплаты?
Пока склоняюсь к первому варианту, но возникнут проблемы с размером базы и, возможно, скоростью выборок.
...
Рейтинг: 0 / 0
Проектрование таблиц для хранния тарифов
    #34878503
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
postuser
Как лучше поступить для предоставления детализации счета (сколько денег снялось за отдельные виды трафика, сколько снято абонплаты ит.д.):
1) при снятии денег с лицевого счета вести лог списываний в отдельной таблице с полями сумма списания, услуга, дата;
2) рассчитывать списания по данным о трафике, расчетных периодов и времени работы клиента за месяц для определения абонплаты?
Пока склоняюсь к первому варианту, но возникнут проблемы с размером базы и, возможно, скоростью выборок.


Имхо тут нет противоречия.
Детализация счета - отдельная сущность, формируется на основании Вашего п.2, после чего
является основанием для снятия денег ( как описано у Вас в п.1).
...
Рейтинг: 0 / 0
Проектрование таблиц для хранния тарифов
    #34881619
postuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин postuser
Как лучше поступить для предоставления детализации счета (сколько денег снялось за отдельные виды трафика, сколько снято абонплаты ит.д.):
1) при снятии денег с лицевого счета вести лог списываний в отдельной таблице с полями сумма списания, услуга, дата;
2) рассчитывать списания по данным о трафике, расчетных периодов и времени работы клиента за месяц для определения абонплаты?
Пока склоняюсь к первому варианту, но возникнут проблемы с размером базы и, возможно, скоростью выборок.


Имхо тут нет противоречия.
Детализация счета - отдельная сущность, формируется на основании Вашего п.2, после чего
является основанием для снятия денег ( как описано у Вас в п.1).
Я про детализацию при печати квитанции или счета... Историю снятий нужно хранить или просто обновлять (UPDATE) лицевой счет, а при печати квитанции расчитывать что за что сняли по логом трафика и расчетным периодам?
...
Рейтинг: 0 / 0
Проектрование таблиц для хранния тарифов
    #34881980
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Я про детализацию при печати квитанции или счета...

Я же говорю, если делать правильно - счет это отдельная сущность, которая хранится в базе.
Отдельно от тарифов, времени работы, списаний со счета и т.д.
Пример
Неправильно посчитали время работы клиента, насчитали лишние деньги, обнулили счет,
приостановили услуги. В следущем отчетном периоде клиент пришел ругаться, ошибку нашли. Что делать дальше? Переправить время работы и состояние счета, все?
В результате нафиг потеряется информация о том, почему приостанавливали услуги, почему
в бухгалтерский баланс за прошлый период попал больше денег, чем надо, почему пришлось возврашать деньги в этом, etc. И концов не найдешь никогда.
Если информация о тарифах отдельно, счета отдельно и списание/приод денег отдельно - эта ситуация разрешается элементарно.
...
Рейтинг: 0 / 0
Проектрование таблиц для хранния тарифов
    #34882338
postuser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин автор
Я про детализацию при печати квитанции или счета...

Я же говорю, если делать правильно - счет это отдельная сущность, которая хранится в базе.
Отдельно от тарифов, времени работы, списаний со счета и т.д.
Пример
Неправильно посчитали время работы клиента, насчитали лишние деньги, обнулили счет,
приостановили услуги. В следущем отчетном периоде клиент пришел ругаться, ошибку нашли. Что делать дальше? Переправить время работы и состояние счета, все?
В результате нафиг потеряется информация о том, почему приостанавливали услуги, почему
в бухгалтерский баланс за прошлый период попал больше денег, чем надо, почему пришлось возврашать деньги в этом, etc. И концов не найдешь никогда.
Если информация о тарифах отдельно, счета отдельно и списание/приод денег отдельно - эта ситуация разрешается элементарно.
Спасибо за помощь. Сейчас у меня примерно так и делается, если я правильно понял.
Есть таблица account (id_acc,balance,id_clients)-там храниться баланс лиц счета, есть таблицы с тарифами (храниться стоимость трафика, абонплата, стоимость доп. услуг итд), есть таблиц платежей (кто оплатил, сумма платежа, дата платежа, тип услуги), таблица клиентов (идент-р, тариф итд), таблицы с трафиком (разные типы трафика), сейчас думаю сделать таблицы списаний (сумма списания, дата списания, клиент, за что списание). Таблица account обновляется по триггерам в двух случаях и в одном раз в месяц при запуске процедуры расчета:
1. При попадании записей в таблицу трафика (происходит расчет согласно таблицам тарифов);
2. При попадании записей в таблицу платежей.
3. В конце расчетного периода запускается процедура, собирающая данные о наличии допуслуг, абонплат и тоже обновляет таблицу account.
Как я понял вы предлагаете делать так:
При добавлении записи в таблицу трафика запускать по триггеру процедуру расчета (с использованием таблиц тарифов) и делать запись в таблицу списаний, а на таблицу списаний повесить тригер, который будет обновлять таблицу account?
Если не сложно, приведите пример как бы вы это делали.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектрование таблиц для хранния тарифов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]