Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / По заданной улице и номеру дома найти его почтовый индекс. / 10 сообщений из 10, страница 1 из 1
14.01.2003, 13:00
    #32090199
Mich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По заданной улице и номеру дома найти его почтовый индекс.
HI ALL!
Помогите решить такую задачу: по заданной улице и номеру дома найти его почтовый индекс. Дано: табличка (в смысле бумажная) с полями "Наименование улицы", "Четные", "Нечетные", "Индекс" . Если нужно найти индекс дома X по улице "ABCD", оператор определяет, что X четное, ищет строки с улицей "ABCD" (их обычно >1) и по полю "Четные" смотрит в диапазон какой строки попадает X. В найденной строке искомый индекс.
Эту задачу я решил создав табличку
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE spr_post_index
    (id                             NUMBER,
    spr_name                       VARCHAR2( 50 ),  --Улица
 
    ch_begin                       NUMBER,  --начало четного интервала
 
    ch_end                         NUMBER,  --конец четного интервала
 
    nech_begin                     NUMBER,  --начало нечетного интервала
 
    nech_end                       NUMBER,  --конец нечетного интервала
 
    post_index                     NUMBER)  --индекс
 
и соответствующую функцию.
Тоже самое надо сделать для другого региона, НО ТУТ РАЗБИВКА НА ИНДЕКСЫ НЕТРИВИАЛЬНАЯ!!!
В поле "Четные"/"Нечетные" может стоять не диапазон, а перечисление (50,62,88), может быть диапазон И перечисление (12-40,50,62,88), часто попадаются дома с индексами (50а-64). Ума не приложу, какая должна быть структура данных и как их обрабатывать!
...
Рейтинг: 0 / 0
14.01.2003, 15:25
    #32090405
scela
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По заданной улице и номеру дома найти его почтовый индекс.
т.е. перечисление - это просто набор записей, у которых начало диапазона совпадает с его концом.
И все.
...
Рейтинг: 0 / 0
14.01.2003, 15:30
    #32090417
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По заданной улице и номеру дома найти его почтовый индекс.
Нормализовать немедленно. Исходные данные перерабатывать, awk-ом, например.
...
Рейтинг: 0 / 0
14.01.2003, 15:54
    #32090455
Mich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По заданной улице и номеру дома найти его почтовый индекс.
2scela Это идея!
2Scott Tiger Каким awk? Исходные данные на бумаге. Пусть юзера сами бьют.
>Нормализовать немедленно.
Как? В этом весь вопрос и заключается...
...
Рейтинг: 0 / 0
14.01.2003, 16:02
    #32090466
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По заданной улице и номеру дома найти его почтовый индекс.
Упс... У меня температура, прогдялел :)
А задача-то какая? Забить всю информацию с бумажек в БД и дальше работать только с ней, отвечая на вопрос об индексе по адресу?
...
Рейтинг: 0 / 0
15.01.2003, 06:34
    #32090821
Mich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По заданной улице и номеру дома найти его почтовый индекс.
2scela Это идея!
2Scott Tiger Каким awk? Исходные данные на бумаге. Пусть юзера сами бьют.
>Нормализовать немедленно.
Как? В этом весь вопрос и заключается...
...
Рейтинг: 0 / 0
15.01.2003, 06:38
    #32090822
Mich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По заданной улице и номеру дома найти его почтовый индекс.
>Забить всю информацию с бумажек в БД и дальше работать только с ней, отвечая на вопрос об индексе по адресу?
Именно. Только как это сделать?
P.S. Sorry за двойной пост.
...
Рейтинг: 0 / 0
15.01.2003, 10:14
    #32090899
Fozzy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По заданной улице и номеру дома найти его почтовый индекс.
ТО есть я так понял с перечислением разобрались, остались дома с индексами(50а), тут возникает вопрос: возможна ли ситуация что дом по улице ХХХ с номером 50 на одном индексе а дом ХХХ №50а на другом... если такая ситуация практическине возможна, то просто игнорируй индексы. В противном случае, можно придумывать разные фишки от обработки строк на предмет вычленения только номера, до ввода дополнительных полей под индекс.
Было высказано пердложение по нормализации, поддерживаю...
Например название улицы выносится в таблицу
create table streets (str_id number,str_name varchar2()) - еще и справочник получится... в принципе можно еще и индек вынести в отдельную таблицу, и тогда на пересечении этих таблиц задавать диапазоны... и четные и нечетные...
Вот, собственно, какие соображения. я бы даже сказал робкие предложения... я не особо богатый опыт имею в проектировке структур )
P.S. я работал с адресными столами... там у них в системах литеры домов вынесены как отдельные поля... но там не стоит задача диапозонов...
...
Рейтинг: 0 / 0
15.01.2003, 11:40
    #32090973
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По заданной улице и номеру дома найти его почтовый индекс.
Если вкратце - не надо хранить диапазоны, надо хранить собственно номера домов. Диапазон преобразуется в список номеров домов в приложении. Что ка сается букв в номерах домов - есть ещё, по меньшей мере, "корпус Н" и "строение Н", из того, что встречается на улицах Москвы. Можно эту часть нормализовать, и мне это больше нравится, можно не нормализовывать и хранить номер+строение+корпус+литера как строку со всеми вытекающими (в первую очередь - ошибками операторов).
...
Рейтинг: 0 / 0
15.01.2003, 13:09
    #32091094
Mich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По заданной улице и номеру дома найти его почтовый индекс.
Спасибо всем принявшим участие в обсуждении проблемы!
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / По заданной улице и номеру дома найти его почтовый индекс. / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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