Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Androgen1985 Member Откуда: Сообщений: 55 |
Нужна помощь, никак не соображу как мне лучше реализовать сравнение тарифов от различных операторов. Исходные данные: Различные провайдеры присылают свои тарифы, в различных форматах. Мне требуется их сравнить и выбрать лучшие цены по направлениям. Для этих целей также используется список кодов и направлений от РосСвязи. Для примера, провайдер может прислать вот такой вариант:
Сие означает, что все звонки по направлению начинающемуся с 402 стоят по 1,2 руб., кроме направления 40253 по которому стоимость 1,3, т.е. префикс с большим кол-вом цифр имеет приоритет над префиксом с меньшим кол-вом цифр. Есть две идеи: 1) Привести все к виду, когда не возможна ситуация что один номер попадает под два префикса. Например, из исходной таблицы сделать вот такую:
|
|||||||||||||||||||||||||||||||||||
27 июл 15, 20:52 [17941883] Ответить | Цитировать Сообщить модератору |
Androgen1985 Member Откуда: Сообщений: 55 |
Нужна помощь, никак не соображу как мне лучше реализовать сравнение тарифов от различных операторов. Исходные данные: Различные провайдеры присылают свои тарифы, в различных форматах. Мне требуется их сравнить и выбрать лучшие цены по направлениям. Для этих целей также используется список кодов и направлений от РосСвязи. Для примера, провайдер может прислать вот такой вариант:
Сие означает, что все звонки по направлению начинающемуся с 402 стоят по 1,2 руб., кроме направления 40253 по которому стоимость 1,3, т.е. префикс с большим кол-вом цифр имеет приоритет над префиксом с меньшим кол-вом цифр. Есть две идеи: 1) Привести все к виду, когда не возможна ситуация что один номер попадает под два префикса. Например, из исходной таблицы сделать вот такую:
2) Второй вариант привязаться к таблице РосСвязи, проставив ссылки в таблице с тарифами. Но в этом случае потом при обновлении таблицы от РосСвязи придется обновлять все эти ссылки. Вторая проблема в том, что некоторых направлений нет в таблице РосСвязи, и придется в нее довносить данные, и при обновлении ее это все придется учитывать. |
||||||||||||||||||||||||||||||||||||
27 июл 15, 21:07 [17941960] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
|
||
27 июл 15, 21:18 [17942007] Ответить | Цитировать Сообщить модератору |
Androgen1985 Member Откуда: Сообщений: 55 |
А если потребуется сравнить тарифы разных операторов у которых различная система этих префиксов? Хотелось бы какого то хорошего универсального решения |
||||
27 июл 15, 21:41 [17942130] Ответить | Цитировать Сообщить модератору |
Jaffar Member Откуда: Сообщений: 633 |
Androgen1985, 1.Нужно Исходя из логики предоставленных данных - приводить все к общему виду, но с возможным сокращением объемов данных. Можно использовать интервалы например с 301 по 312 - 1 р. 31002 по 31002 - 2 р. приоритет будет ест-но у более длинного. 2.Потом уже после выборки и определения наиболее выгодного предложения можно попробовать опять свернуть данные в более компактный вид или воспользоваться тем что было до разворачивания. А вообще это похоже не конкретную прикладную задачу, где общий ответ никак не поможет. |
28 июл 15, 09:00 [17943299] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |