powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно хранить адрес
25 сообщений из 25, страница 1 из 1
Как правильно хранить адрес
    #33449044
Адресат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть база данных о выполнении работ для клиентов. Клиенты - физлица. Адрес клиента должен браться из КЛАДР. Он в принципе и берется,но как его лучше хранить?
Варианты
1.
Отдельная сущность Адрес с атрибутами
КОДРегиона char(2),
КОДРайона char(3),
КОДГорода char(3),
КОДНасПункта char(3),
КОДУлицы char(4),
Дом char(5),
Корпус char(5),
Кв char(5)
Со связью 1-1 с сущностью "Клиент"
2. Отдельная сущность Адрес с атрибутами
КОДУлицы char(17), -- Включает в себя все коды вышестоящих по иерархии объектов
Дом char(5),
Корпус char(5),
Кв char(5)
Со связью 1-1 с сущностью "Клиент"
3.
4 атрибута сущности "Клиент"
КОДУлицы char(17), -- Включает в себя все коды вышестоящих по иерархии объектов
Дом char(5),
Корпус char(5),
Кв char(5)

4. 1 атрибут сущности "Клиент"
КодАдреса char(32) -- Включает в себя код улицы + Дом+Корп+Квартира

И вообще, поделитесь опытом.
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33449631
eav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eav
Гость
можно так:
Регион
Район принадлежит Региону
Город-НасПункт принадлежит Району
Улица принадлежит Город-НасПункт
Клиент принадлежит Улица
+ Дом+Корпус+Кв
причем Дом+Корпус+Кв можно одним полем
итого 5 таблиц
по Клиент вытаскиваем по ссылкам полный адрес
по любому уровню вытаскиваем подуровни + всех клиентов
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33449803
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Медитируй в сторону деревьев.
2. Познакомься с КЛАДР.
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33450804
Адресат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С КЛАДР знаком. Сделано 5 вьюшек к его таблицам:
РЕГИОНЫ
РАЙОНЫ
ГОРОДА
НАСПУНКТЫ
УЛИЦЫ
В результате последовательного выбора на форме, я получаю 17-ти значный код улицы, которы включает в себя и код региона, и района и города и наспункта. Дополнительно ввожу Дом, Корпус, Квартиру. А теперь вопрос см пост (1).
Пока решил хранить как
37-символьную строку -
2_ 3__ 3__ 3__ 4___ 5____ 5____ 5____ 6_____ (символов)
Код Код Код Код Код Дом Корп Кв Почт
Региона Района Города НП Улицы Индекс

Какие минусы?
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33451205
KGP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Адресат
Какие минусы?

Минусы - трудозатраты по отношению к хранению в одной строке.
А какие +?

Что ты будешь делать с адресом ?
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33452215
Estets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Адресат.
Пока решил хранить как
37-символьную строку -
Какие минусы?
1) Понадобится выбрать всех клиентов из Питера, будет шаманство с substring?
2) Как отобразить такой адрес в списке?
3) Бывают еще нерезиденты из Белоруссии ;) как сохранить адрес для такого лица?
4) Как бы часто не обновлялся КЛАДР всегда есть возможность наткнуться на улицу которой в КЛАДР нет, что делать в таком случае?
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33453824
iamhere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KGPМинусы - трудозатраты по отношению к хранению в одной строке.
А какие +?
Что ты будешь делать с адресом ?

Адрес часто нужно быстро подбирать . Т.е. набрал три буквы от области - нашел область, набрал пару букв города - нашел город, нашел улицу, нашел дом и при этом не опечатался, не ошибся, получил почтовый индекс.
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33454972
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мешает хранить в "деревянной" таблице дополнительное поле с "полным" адресом?
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33455911
BF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BF
Гость
У Клиента бывает много адресов.
Как минимум, регистрации и фактического проживания, а также рабочий, и т.п.
Если в постановке этого сейчас нет, то потом точно появится - заложите сразу, не пожалеете.
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33456715
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего-то я не пойму - какие проблемы сделать ссылку на КОД (улицы, города - хоть на все сразу, хоть на одно) и держать это в отдельной таблице? Велосипед хочется изобрести безколесный?

-- Tygra's --
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33456906
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tygraЧего-то я не пойму - какие проблемы сделать ссылку на КОД (улицы, города - хоть на все сразу, хоть на одно) и держать это в отдельной таблице? Велосипед хочется изобрести безколесный?

-- Tygra's --

Тогда уж с квадратными колесами...
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33460434
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идти нужно от потребностей. Адреса вносятся из документов, записаны могут быть там в произвольном виде. Более того, если тот же паспорт был выдан несколько лет назад, в нем м.б. старое название нас. пункта. В принципе, в КЛАДР есть некая таблица соотв., но что-то подсказывает мне что она далеко не полная.
Плюс к этому, в этой красивой деревянной структуре - Регион, город и пр. может быть опущен любой уровень. Город м.б. на месте региона (Москва и Питер), а м.б. на месте населенного пункта.

Потому, учитывая размеры КЛАДРа, подбор его частей из списка может оказаться куда неудобней простого прямого ввода.
А вытаскивание всех клиентов из Питера через substring не настолько менее эффективно, чтобы городить для него эту структуру.

Я храню в структуре КЛАДР + полный текстовый адрес. На клиенте для резидентов выбирается из справочников и записывается в поле адреса. Есть возможность прямого ввода адреса без КЛАДРа. Но у меня была необходимость в сохранении именно самого КЛАДРа, точнее в возможности формировании адреса для налоговой и пр.
А если бы не это, он нафиг не нужен. Ибо поступающие данные слишком энтропийны


Nobody faults but mine... (LZ)
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33460925
freebeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nik_x2. Познакомься с КЛАДР.
imho, КЛАДР - образец того, как НЕ НАДО проектировать базы.
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33461304
freebeer nik_x2. Познакомься с КЛАДР.
imho, КЛАДР - образец того, как НЕ НАДО проектировать базы.

Если не затруднит, обоснуйте, пожалуйста.
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33461744
iamhere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aagИдти нужно от потребностей.

Абсолютно! Например - нужно определять почтовый индекс :) Или, как в вашем случае - определять коды именно по КЛАДР.

Адреса вносятся из документов

У вас? Но не у всех.

Плюс к этому, в этой красивой деревянной структуре - Регион, город и пр. может быть опущен любой уровень

И какие проблемы?

Потому, учитывая размеры КЛАДРа, подбор его частей из списка может оказаться куда неудобней простого прямого ввода. [quot]

Размеры КЛАДРА никак не сказываются напрямую на УДОБСТВЕ ввода ;) Просто надо УДОБНО делать. Поскольку именованные части разнесены там, то индексы получаются весьма эффективные.

[quot]А вытаскивание всех клиентов из Питера через substring не настолько менее эффективно, чтобы городить для него эту структуру.

Почему только из Питера?? А если по всей РФ? А если клиентов 500 000? (Это не с потолка взятое число). substring, хм.. ;)
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33461834
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 iamhere
Почтовый индекс в КЛАДРе присутствует только где-то в 30-40% адресов. Кроме того, одна улица может иметь два разных индекса. И наоборот, один индекс может покрывать всю какую-нить Удмуртию целиком.
Указывая, что адреса вносятся из документов, я имел в виду, что в формате КЛАДРа они встречаются только в некоторых программах ЦБ или МНС. Если вы имеет дело с адресами именно из них - вам повезло. А в реальной жизни все их пишут в др. виде - хоть в договорах, хоть в паспортах, хоть в свидетельствах. Распарсить который в формат КЛАДР практически невозможно. Это же относилось и к деревянной структуре.
Пример про Питер был приведен в ответ на пост Estets
А для вытаскивания всех из РФ, КЛАДР не нужен. Нужен код страны, на худой конец, признак резиденства.

2 freebeer
На самом деле реальная система адресации в жизни довольно запутана, противоречива и имеет множество нюансов. На этом фоне предьявлять претензии самому КЛАДРу... сложно. Особенно если учесть необходимую ориентацию на dbf.

Nobody faults but mine... (LZ)
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33462332
freebeer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aag
2 freebeer
На самом деле реальная система адресации в жизни довольно запутана, противоречива и имеет множество нюансов.

С этим не спорю ни разу.

aag
На этом фоне предьявлять претензии самому КЛАДРу... сложно. Особенно если учесть необходимую ориентацию на dbf.


Как раз к проектировщикам кладра и нужно предъявлять. Уровней всего - кот наплакал(7), а сгородили геморой. Лучше бы они просто разнесли их по отдельным таблицам, а так.... И dbf здесь совсем не причем.


файл Kladr.dbf – содержит записи с объектами первых четырех уровней классификации (регионы; районы (улусы); города, поселки городского типа, сельсоветы; сельские населенные пункты);
файл Street.dbf – содержит записи с объектами пятого уровня классификации (улицы городов и населенных пунктов);
файл Doma.dbf – содержит записи с объектами шестого уровня классификации (номера домов улиц городов и населенных пунктов);
файл Flat.dbf – содержит записи с объектами седьмого уровня классификации (номера квартир домов);


Для выборки и увязки нужных адресов необходимо генерить или анализировать СИМВОЛЬНУЮ строку немерянной длины(13-19 символов в разных таблица ).
НА ХРЕНА!!!!!!!!!.
Все цифирьки из этой строки замечательно кладутся в поля типа нумерик(в dbf причем весьма коротенький), которое в дальнейшем замечательно и однозначно портируется в любой подходящий целый тип и изумительно работает, не требуя больших вычислительных затрат. Места в конечном итоге это занимает не больше.
Нормализация хромает на обе ноги...
Все поля - символьные (или это религия такая)
И вообще, когда мне приходится использовать Кладр, я тихо матерюсь и сжимаю зубы
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33462685
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 freebeer
Ну, вы скорее всего правы и относительно таблиц и - безусловно по кодам. Только что-то мне подсказывает, что и в таком виде это КЛАДР особо не улучшит...

Nobody faults but mine... (LZ)
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33463782
iamhere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aag
Почтовый индекс в КЛАДРе присутствует только где-то в 30-40% адресов.

Хм.. Я вообще не мерил... Это вы сами посчитали или как?
На практике редко, когда не находится.


Кроме того, одна улица может иметь два разных индекса. И наоборот, один индекс может покрывать всю какую-нить Удмуртию целиком.

И.. и что, простите, с того? Ну да, так и устроены почтовые индексы. Почему из этого следует, что не стоит использовать КЛАДР???


Указывая, что адреса вносятся из документов...распарсить который в формат КЛАДР практически невозможно.

Еще раз. Если У ВАС основным источником являются документы и электронный вид - это ваши проблемы, сочувствую. Есть и другой частый источник данных - живые клиенты и обученные операторы, которые со слов подбирают адрес.


На самом деле реальная система адресации в жизни довольно запутана, противоречива и имеет множество нюансов. На этом фоне предьявлять претензии самому КЛАДРу... сложно.

Согласен. Хорошо, что хоть это есть.
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33464391
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 iamhere
У вас пример был - нужно определять почтовый индекс. Я вам отвечаю - как вы будете определять почтовый индекс по улице, если там их два? С моей точки зрения, для этих целей КЛАДР не слишком подходит. Только по принципу "на безрыбье и рак..." и если наличие индекса обязательно...

автордругой частый источник данных - живые клиенты и обученные операторы, которые со слов подбирают адрес
А слова эти, их на ходу по вашему придумывают? Или они все-таки тоже беруться из неких документов? Я ведь упирал не на то, откуда берутся адреса, а на то в каком виде они берутся. Вот, к примеру, мой адрес рождения - г.Совгавань, Хабаровский край. Ну-ка, не делая селектов-поиска по всем названиям - найдите его по КЛАДРу? Сколько времени у вас уйдет на это?
А вообще же я писал не о том, что КЛАДР нельзя использовать ни в коем случае. А о том, что его реальное применение связано с кучей нюансов, которые сильно нивелируют его информационную ценность. В каких-то областях он, разумеется, лучше с ним, чем без него.

Nobody faults but mine... (LZ)
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33464881
iamhere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aag2 iamhere
У вас пример был - нужно определять почтовый индекс. Я вам отвечаю - как вы будете определять почтовый индекс по улице, если там их два?

На входе - "Московская обл, Ленинский р-н, г. Видное, ул. Школьная, д.15". Для улицы может и два индекса (для четныйх, например, и для нечетных), а для конкретного дома индекс определяется однозначно по КЛАДР.

aagА слова эти, их на ходу по вашему придумывают? Или они все-таки тоже беруться из неких документов?
Просто в этой ситуации стоит не задача автоматического разбора строки, вбитой неизвестно кем неизхвестно как, неизвестно когда и неизвестно на основании чего, а стоит задача быстро подобрать адрес со слов живого человека, который называет этот адрес и подскажет в какой области этот город (если одноименный в двух областях встречается) и как он раньше назывался. Т.е. СОВСЕМ другая задача.

aagг.Совгавань, Хабаровский край.
Несколько секунд уйдет. В поле "город" вобьешь "Совгав.." и скорее всего ровно один город такой и найдется. В чем проблема-то? Автоматом подставится край и (если индекс один на весь город) индекс.

aag
А вообще же я писал не о том, что КЛАДР нельзя использовать ни в коем случае. ... В каких-то областях он, разумеется, лучше с ним, чем без него.

Точно!
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33465924
aag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ поле "город" вобьешь "Совгав.." и скорее всего ровно один город такой и найдется. В чем проблема-то?
В том, что не найдется. Потому как в КЛАДРе такого города нет. А есть город Советская Гавань. Но находится он не в крае, а в р-не (данного края). Однако во всех документах написано именно так как я вам написал. Вот и остается только подбор.

Nobody faults but mine... (LZ)
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33474014
iamhere
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aagв КЛАДРе такого города нет. А есть город Советская Гавань
Ну вот в случае работы с живым человеком он сразу и подскажет. И манагер еще через 5 сек найдет Советскую гавань.
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33498199
смешно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iamhere aagв КЛАДРе такого города нет. А есть город Советская Гавань
Ну вот в случае работы с живым человеком он сразу и подскажет. И манагер еще через 5 сек найдет Советскую гавань.

Живо представляю себе "живого человека" - рядового жителя Совгавани. Который стоя перед менеджером произносит "Так ничего не найдется. Потому как в КЛАДРе такого города нет. А есть город Советская Гавань. Но находится он не в крае, а в р-не (данного края). Однако во всех документах написано именно так как я вам написал."... Это будет эпическая картина!!!!!!

Увы - при работе "с живыми людьми" далеко не все в состоянии вспомнить свой адрес именно в том порядке, в каком он определен в КЛАДРе... Особенно если система захватывает не один город, а область/край... Тут даже самый квалифицированный менеджер не поможет (а если и поможет, то процесс затянется в десятки раз...).
...
Рейтинг: 0 / 0
Как правильно хранить адрес
    #33501045
asleep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да с чего вы взяли, что в определенном порядке надо вводить??? ;)
Городов не так много а уж с названием Совгавань или Советская гавань - так и вообще раз, два и обчелся ;)

Подобрал название города - оно само дальше край и область по КЛАДР определит - он для того и сделан.

А живой человек говорит всего лишь "Хм.. совгавани нет? Ну посмотрите Советская гавань, бывает...". И все.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как правильно хранить адрес
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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