barguzin2 писал(а):
Про зоны только сейчас речь пошла.
Зоны - способ группировки направлений.
Эту сущность можно опустить как лишнюю в данной теме.
Код:
Направление <N-----(--1> Зона <1--)---1> Цена
Направление <N-------------------------1> Цена
barguzin2 писал(а):
В картах цен сначала цена по префиксу ищется.
Как бы то ни было, цена так или иначе назначается только после идентификации направления. Это делается по префиксу.
Префиксов таких у нас нет. Могу приложить картинку дерева.
Имеем ситуацию - абонент ввел
несуществующий номер, но биллинг выдал ошибку
отсутствия цены.
barguzin2 писал(а):
А различать ошибки не проблема. Делаете поиск по номеру в карте зон, если не найден - значит ошибочный номер или нет кода (второе маловероятно), а если найден - значит действительно нет цены в тарифе.
Да, так можно делать. Но нам нужно, чтобы коды ошибок соответствовали ситуации, а не хрен пойми чему.
Ошибочное направление - косяк клиента, отсутствие цены - ошибка оператора.
В первом случае мы проигрываем абоненту "Неправильно набран номер", во втором - "Возникла ошибка, обратитесь в техническую поддержку".