powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как хранить адреса в БД?
55 сообщений из 55, показаны все 3 страниц
Как хранить адреса в БД?
    #39761963
tasyusha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понимаю, что этот вопрос был здесь задан не раз, те топики я читал и полезного как-то не вынес. Поэтому прошу не судить строго, подниму эту тему еще раз.

Мне нужно хранить в БД персональные данные (имя человека, email, телефон) и адреса (допустим этих же людей). Вопрос в том, как спроектировать таблицу(ы) для хранения адресов. Первой моей идеей было хранить адреса прямо в таблице юзеров (вместе с мейлом и телефоном).

Вторая идея - вынести в отдельную таблицу адресов и хранить там в форме id, city, street, house, apt. Но это не решает проблему вертикальной дупликации строковых значений: у меня будет очень много Москв и Санкт-Петербургов, например. Значит, нужно создать таблицу city и снова делать туда FK и потом JOINить все это дело. Улицы, по идее тоже бы неплохо хранить в своей таблице и связать их с теми городами, которым они принадлежат.

На самом деле уже получается довольно громоздкая БД для такого просто приложения (по сути простейшая CRM система). Вот и когда я уже дошел до такого состояния, что для выполнения простейшего запроса нужно сделать запрос в 3 JOINа на 4 таблицы, я заметил интересную вещь у меня вертикальную дупликация как минимум идет по именам: и вот я сейчас думаю, почему меня должно смущать, что у меня в таблице 2000 Москв, а 2000 Андреев - это нормально?

Или нужно создавать таблицу с именами? ;)

В общем, по большому счету вопрос сводится к тому, насколько она нужна в данном случае нормализация и насколько глубоко это все нужно нормализовывать?
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39761978
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasyushaВ общем, по большому счету вопрос сводится к тому, насколько она нужна в данном случае нормализация и насколько глубоко это все нужно нормализовывать?

Замечательный вопрос.
Осталось выяснить для чего нужна сама нормализация (ну не нужна же она только для галочки, правда?) и вы сразу получите ответ.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762016
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привязывайтесь к ФИАС.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762017
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasyushaпочему меня должно смущать, что у меня в таблице 2000 Москв, а 2000 Андреев - это нормально?
Потому что Москва одна, а Андреи разные.
Смущать должно то, что это непонятно.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762024
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите что такое КЛАДР.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762091
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нужно смотреть КЛАДР, он не обновляется.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762130
tasyusha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PizzaPizzaОсталось выяснить для чего нужна сама нормализация (ну не нужна же она только для галочки, правда?) и вы сразу получите ответ.

Вот это и непонятно. Т.е. почему email и телефон я храню в таблице user, а адрес этого user'а выношу в таблицу address? Вот читаю, например:

авторНормализация нужна для борьбы с избыточностью. т.е. данные не дублируются и связаны только внешними ключами.
Ок, допустим хранить имя клиента в таблице order - это глупо (у одного юзера может быть овер до черта заказов). Но в моем случае - адрес у него может быть только один. Где здесь дупликация?

В принципе тут вопрос, а является ли мой вариант в принципе не нормализованным. Смотрим по формам:
авторПервая нормальная форма:

запрещает повторяющиеся столбцы (содержащие одинаковую по смыслу информацию)
запрещает множественные столбцы (содержащие значения типа списка и т.п.)
требует определить первичный ключ для таблицы, то есть тот столбец или комбинацию столбцов, которые однозначно определяют каждую строку

Повторяющихся столбцов нет (номер дома и город - это не одинаковая по смыслу информация).
Множественных столбцов нет.
Первичный ключ есть. Дальше, аленькая ремарочка: если таблица находится в первой нормальной форме и первичный ключ у нее состоит из одного столбца, то она автоматически находится и во второй нормальной форме (мой pk - user_id, один столбец).

авторТретья нормальная форма

Чтобы таблица находилась в третьей нормальной форме, необходимо, чтобы неключевые столбцы в ней не зависели от других неключевых столбцов, а зависели только от первичного ключа. Самая распространенная ситуация в данном контексте - это расчетные столбцы, значения которых можно получить путем каких-либо манипуляций с другими столбцами таблицы. Для приведения таблицы в третью нормальную форму такие столбцы из таблиц надо удалить.
Здесь непонятно: столбец город не зависит ни от первичного ключа, ни от других столбцов - никаким образом получить город пользователя из других столбцов нельзя.

Вот так вот.
авторЗачастую, чтобы извлечь информацию из нормализованной базы данных, приходится конструировать очень сложные запросы, которые к тому же, бывает, работают довольно медленно - из-за, главным образом, большого количества соединений таблиц. Поэтому, чтобы увеличить скорость выборки данных и упростить программирование запросов, нередко приходится идти на выборочную денормализацию базы.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762138
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasyushaВот это и непонятно. Т.е. почему email и телефон я храню в таблице user, а адрес этого
user'а выношу в таблицу address?

Не с этого надо начинать. Базовым вопросом является "а для чего именно ты вообще
хранишь почту, телефон и телеграф адрес в своей базе".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762139
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНормализация нужна для борьбы с избыточностью. т.е. данные не дублируются и связаны только внешними ключами.

Вы так и не ответили на вопрос, зачем нужна нормализация. Нормализация и есть, в частности, борьба с избыточностью. А вот зачем эта борьба с избыточностью нужна вам? Это вопрос.

Если у вас максимумы порядка несколько десятков тысяч записей на таблицу и/или пару запросов в секунду и нет требований по ожиданиям, то можно обойтись без нормализации.

Нормализация дает вам
а) Производительность и требования к оборудованию. Уменьшение объёмов базы за счет уменьшения объёма данных. Меньше памяти надо - меньше информации обрабатывать - быстрее запросы. Меньше памяти надо - больше влезает в кеши - быстрее запросы. Меньше размеры индексов - быстрее запросы.
б) Логическую цельность. Когда у вас 2000 Москв или 2000 Андреев в базе, то, при некоторых условиях (bulk insert или ручное редактирование/вставка) у вас будет 1999 Москв и 1 Маскв или 1999 Андреев и 1 Андрев.

Вопрос только в том, вам это надо все в ваших конкретных условиях или нет.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762143
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasyusha
Здесь непонятно: столбец город не зависит ни от первичного ключа, ни от других столбцов - никаким образом получить город пользователя из других столбцов нельзя.
Ээ, Вы уверены что не зависит?
Скажем, по улице и дому "Красная площадь, 7" - никак-никак нельзя узнать город?
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762147
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasyushaОк, допустим хранить имя клиента в таблице order - это глупо (у одного юзера может быть овер до черта заказов). Но в моем случае - адрес у него может быть только один. Где здесь дупликация?


У юзера может быть 2 адреса: регистрации и проживания. Вы же не указали, что это за адрес...
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762149
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegabyteУ юзера может быть 2 адреса: регистрации и проживания. Вы же не указали, что это за адрес..
а 2-4 почти что норма(встречала и 72)
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762153
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАа 2-4 почти что норма(встречала и 72)

Да ладно, братки разберутся из какой квартиры вещи выносить. В случае чего соседей ласково
попросят о сотрудничестве добрым словом и револьвером.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762154
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasyushaPizzaPizzaОсталось выяснить для чего нужна сама нормализация (ну не нужна же она только для галочки, правда?) и вы сразу получите ответ.

Вот это и непонятно. Т.е. почему email и телефон я храню в таблице user
А действительно, почему? Что стало причиной такого решения?

Ведь у пользователя может быть три email-а, два телефона, какой-нибудь skype, linkedin, и ещё множество разнотипных контактов?
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762165
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 таблица - тип адреса
2 таблица - тип части адреса
3 таблица - адрес

2 -> 1
2 -> 3
2 -> 2
2 -> users

запрос к адресу - иерархический (для полного адреса)

Такая конструкция у меня пока работает успешно
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762177
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри, опечатался

-> - это один-ко-многим

1 -> 3
1 -> 2
2 -> 3
3 -> 3
users -> 3
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762213
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я может чего-то не понимаю, но автору религия не позволяет сделать view(по городам, улицам и так далее) и без всяких джоинов оттуда брать что угодно? Если структура уже готова и она рабочая - автоматизируйте свои запросы - вы ж затем специальность свою и получали.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762215
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Не нужно смотреть КЛАДР, он не обновляется.

Актуальность базы: 2019.01.17
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762216
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо же, действительно.
Но при этом: https://www.gnivc.ru/inf_provision/classifiers_reference/kladr/
выгрузка адресных сведений в формате КЛАДР 4.0 будет осуществляться до 31.12.2017г. После 31.12.2017г сведения из ГАР будут выгружаться только в формате ФИАС.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762217
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Надо же, действительно.
Но при этом: https://www.gnivc.ru/inf_provision/classifiers_reference/kladr/
выгрузка адресных сведений в формате КЛАДР 4.0 будет осуществляться до 31.12.2017г. После 31.12.2017г сведения из ГАР будут выгружаться только в формате ФИАС.

и тем не менее, посмотреть можно(как это делают многие банки, например), просто потому что кладр на данный момент может иметь то, чего нет в ФИАС.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762223
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ целях унификации адресных сведений, содержащихся в различных информационных ресурсах, с учетом предоставления переходного периода для модификации соответствующих информационных систем, выгрузка адресных сведений в формате КЛАДР 4.0 будет осуществляться до 31.12.2017г. После 31.12.2017г сведения из ГАР будут выгружаться только в формате ФИАС.
Очевидно речь идет о том, что ГНИВЦ после 31.12.2017г загружает адреса в формате ФИАС

А КЛАДР как был, так и останется.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762537
tasyusha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О, книжка Харрингтона. Пацан складывает все в таблицу customer и не парится. Че, не нормализовано?

...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762575
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasyusha,

customer != user
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762619
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasyusha,

Первое что надо сделать, это проимпортировать ФИАС (бывший кладр)

Но всё зависит от постановки задачи и требуемых операций от адресов.


Что такое проблема вертикальной дубликации осталось загадкой...
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39762712
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasyushaпочему меня должно смущать, что у меня в таблице 2000 Москв, а 2000 Андреев - это нормально?
Потому что эти 2000 Москв - это одна сущность. И если ее переименуют в Старые Васюки, придется менять 2000 строк, а это то, чего хотят избежать с помощью нормализации.

А Андрей само по себе - это не сущность, это атрибут человека. Если даже человек Андрей решить через суд сменить себе имя на Сергей и принесет новые документы, переименовывать нужно будет его одного - апдейтить одну строку, и это нормально. Не существует такой ситуации, когда всех Андреев пришлось бы переименовывать в Сергеев.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39763009
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasyusha Вот и когда я уже дошел до такого состояния, что для выполнения простейшего запроса нужно сделать запрос в 3 JOINа на 4 таблицыОбычно это не является проблемой

tasyusha а 2000 Андреев - это нормально?вы еще выгоду в диске подсчитайте - каждое поле name_id пусть будет int32 - 4 байта, а условный андрей - шесть байт
итого целых два байта на каждого пользователя, для 2000 андреев это будет аж 4Кб

Теперь другой момент который вы упускаете - редактирование записи
Пусть пользователь хочет ввести город "Питер" ваши действия:
не давать вводить совсем - выбирай из списка, ищи лучше - не нашел твои проблемы, а нам не нужны клиенты с проблемами.
или ввести Питер в справочник городов в дополнение к "Санкт-Петербургу", "Санкт Петербургу", "Ст-Петербургу", "Петербургу", "Ленинграду".

Допустим мы разрешили пользователям вводить свои значения и пользователь меняет свой "Питер" на "Санкт-Петербург"
Когда мы должны удалить "Питер" из справочника: никогда, когда на него не будет ссылок?

tasyusha вынести в отдельную таблицу адресов и хранить там в форме id, city, street, house, apt Ага, а потом client_address_xref таблицу, а потом при смене клиетном адреса оставлять старый адрес типа а вдруг пригодится.

Короче
Добавьте в вашу таблицу адресов клиент_id и назовите таблицу адреса клиентов, чтобы клиент мог иметь более одного адреса.
Стоит ли связыватся с кладром (ФИАСом) решайте сами

PizzaPizza Осталось выяснить для чего нужна сама нормализация (ну не нужна же она только для галочки, правда?) и вы сразу получите ответ.плюс много.
с некоторого возраста появился вопрос "зачем" (с)
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39763049
МодальноеОкно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257вы еще выгоду в диске подсчитайте - каждое поле name_id пусть будет int32 - 4 байта, а условный андрей - шесть байт
итого целых два байта на каждого пользователя, для 2000 андреев это будет аж 4Кб

надо все адреса сократить. питер -> п

а у нас в уезде писарь возраст одной цифирькой указывал. чернила, шельмец, экономил (с) кино
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39763103
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tasyushaВопрос в том, как спроектировать таблицу(ы) для хранения адресов

Ладно, открою тайну.

Беда в том, что понятие адресов - штука очень исторически сложившаяся, архаичная, полная исключений, и потому очень плохо ложащаяся в понятия реляционных баз данных. Если разозлиться, и попробовать охватить все варианты - получится что-то вроде упоминавшихся уже КЛАДР и ФИАС, но нужны ли они вам - решайте сами.

Начинающие разработчики часто пытаются сделать простое дерево вроде Область - Район - Населенный пункт - Улица - Дом - Квартира.

Типовые проблемы, с которыми они сталкиваются - города федерального подчинения, села без улиц, несколько одинаковых улиц в одном городе, понятие микрорайонов, кварталов, корпусов, строений, флигелей, военных городков, зданий без присвоенного адреса, и тому подобное.

Но все же на практике часто используют упрощенные модели. В пределе, например, работающее решение: Вы делаете сайт, рассылающий по почте бумажные рекламные каталоги. Пользователь заходит, регистрируется, и запрашивает себе каталог, для чего вводит свой адрес.

Так вот, адрес в США печатается конверте четырьмя строками. Решение в том, что для данного сайта совершенно достаточно хранить адрес всего лишь в виде четырех строковых полей, LINE_1 ... LINE_4, и выводить их на печать конверта в том виде, как ввел пользователь.

Если пользователь слегка ошибся в написании адреса - почтальон посмотрит, поймет. Если ошибся сильно - не получит каталог, сам себе дятел, невелика беда. Спрашивается, нужен ли тут КЛАДР или ФИАС?

Так и в информационных системах среднего пошиба вполне допустимо сделать самопальное упрощенное дерево, а возникающие единичные проблемы решать творчески, например в единственном селе без улицы сделать улицу с названием "без улицы". Ну вот, сейчас опять прибежит softwarer меня бить за такие идеи. Может, он что путное вам посоветует.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39763199
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat Fisher Не существует такой ситуации, когда всех Андреев пришлось бы переименовывать в Сергеев.

вы тут поосторожнее - у нас все возможно.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39763308
Zmeelov2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherТак и в информационных системах среднего пошиба вполне допустимо сделать самопальное упрощенное дерево
Можно. Но только в том случае, когда разрабатываемая система не предназначена для эксплуатации. Как учебная задача - вполне можно упростить.
Cane Cat FisherЕсли разозлиться, и попробовать охватить все варианты - получится что-то вроде упоминавшихся уже КЛАДР и ФИАС
КЛАДР и даже ФИАС не дают всех вариантов адресов. Причины - не все объекты здания (в понятиях ФИАС - смотрите соседнюю дискуссию по автобусным остановкам), не все объекты привязаны к населенным пунктам. Плюс это национальные системы - то, что за границей РФ, для них не существует. И тогда остается только ручной ввод
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39763410
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zmeelov2Можно. Но только в том случае, когда разрабатываемая система не предназначена для
эксплуатации. Как учебная задача - вполне можно упростить.

Если система предназначена для эксплуатации, то это дерево надо вообще напрочь убрать и не
парить пользователям мозг вводом бесполезных атрибутов. У них и так работы хватает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39763753
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нас. пункт - из справочника с удобным поиском. Тип улицы (ул/пер/бульв/просп). Остальное - прописью.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39763755
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoТип улицы (ул/пер/бульв/просп).

В вашей конторе действительно делается отчёт с группировкой контрагентов по типу улицы на
которой они расположены? Забавно...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39763790
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovL_argoТип улицы (ул/пер/бульв/просп).
В вашей конторе действительно делается отчёт с группировкой контрагентов по типу улицы на
которой они расположены? Забавно...
нет. Но это позволяет хранить название текстовое улицы без префикса ул/пер/....

А зачем вообще группировать контрагентов по адресу ?
Такое может быть разве что, если нужны все компании в конкретном ТРЦ/ОЦ.

Если уж так нужно привести все к единому знаменателю, то разношерстная инфа адресов просто заносится в таблицу соответствий и там проставляются ID-шки из единого эталонного справочника.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39763803
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoнет. Но это позволяет хранить название текстовое улицы без префикса ул/пер/....

Ага, значит у вас есть отчёт с группировкой контрагентам по улице без учёта её типа.
Что-то вроде "на садовых у нас 12 партнёров"?

В противном случае возникает вопрос: никого не смущает, что ввести префикс улицы в
"остальное прописью" гораздо быстрее и проще, чем выбирать его из длинного выпадающего
списка? Или таки у вас система построена "чтобы слоники бегали"?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39763934
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoнас. пункт - из справочника с удобным поиском. Тип улицы (ул/пер/бульв/просп). Остальное - прописью.
Справочник с типом улицы повеселил конечно. Номерные проектируемые проезды в какой тип запихивать будете?
Пользователь должен будет выбрать из списка тип - проезд, а затем вручную написать "Проектируемый №4062"?

Да и справочник населённых пунктов.... Привязываться к ФИАС? Ибо вручную админ замается туда наименования заносить...

P.S. Весь адрес вручную, пользователь лучше знает по какому адресу он живёт не задумываясь над классификацией
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39764159
Zmeelov2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.FontaineВесь адрес вручную, пользователь лучше знает по какому адресу он живёт не задумываясь над классификацией
Если адрес не значим - то да. А вот если на адрес планируется что-то отправлять - то ручной ввод с предложением вариантов (по результатам разбора ввода пользователя) из ФИАС. Иначе неизбежно столкнетесь с вариантом, что Vjcrdf - столица РФ.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39764174
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoА зачем вообще группировать контрагентов по адресу ?
Например, чтобы составить оптимальный список для обхода, для бригады по выбиванию долгов.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39764177
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoЕсли уж так нужно привести все к единому знаменателю, то разношерстная инфа адресов просто заносится в таблицу соответствий и там проставляются ID-шки из единого эталонного справочника.
Если эталонный справочник существует, почему бы не дать пользователям просто выбирать из него?
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39764325
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherЕсли эталонный справочник существует, почему бы не дать пользователям просто выбирать из него?

Выбор из справочника обычно медленнее прямого ввода.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39764357
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логичнее разрешать прямой ввод и предлагать подсказки.
После ввода валидировать и сопоставлять со справочником.
Если какие-то элементы не удалось сопоставить, уточнить у пользователя.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39764401
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherL_argoЕсли уж так нужно привести все к единому знаменателю, то разношерстная инфа адресов просто заносится в таблицу соответствий и там проставляются ID-шки из единого эталонного справочника.
Если эталонный справочник существует, почему бы не дать пользователям просто выбирать из него?Это не всегда возможно:
1. Адрес пришел в файле или поступил из личного кабинета.
2. У оператора нет времени рыться в поиске среди миллионов строк. Проще набрать неск. букв.
3. Для поиска правильного адреса нужна опред. квалификация: знания переименованных улиц, сленговые названия.
4. Точного адреса вообще может не быть. Тогда указание чего нить ближайшего из БД может быть методологически неверным.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39764442
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo4. Точного адреса вообще может не быть. Тогда указание чего нить ближайшего из БД может быть методологически неверным.А может и быть.
Мне доводилось находиться по адресу в котором вместо населенного пункта и улицы было "близ села xxxxxx", а потом номер дома. Причиной этому было то, что участок только наполовину попадал на территорию этого села. И здания внутри территории села имели адрес по нему, а здания снаружи - те были "близ". Причем номер дома был один и тот же, но различался номер строения.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39764961
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovCane Cat FisherЕсли эталонный справочник существует, почему бы не дать пользователям просто выбирать из него?

Выбор из справочника обычно медленнее прямого ввода.

Не нужно смешивать вопросы организации интерфейса со структурой БД. Если в справочнике улиц тысячи строк, никто не заставляет пихать их в комбобокс или окно. Вполне можно сначала дать пользователю ввести три буквы, а затем дать выбирать из уже отфильтрованного.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39764965
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zmeelov2Mr.FontaineВесь адрес вручную, пользователь лучше знает по какому адресу он живёт не задумываясь над классификацией
Если адрес не значим - то да

Но один вопрос меня мучает. Если адрес не значим - зачем его вообще вводить?

А если значим - как можно допускать туда мусор?

Зная точный адрес, можно делать с контрагентом всякие интересные вещи, например подать на него в суд. А если у вас его адрес с опечатками да "сленговыми названиями" - нет, конечно, это не сразу так проигрыш в суде, но вполне возможны исправления и задержки в несколько месяцев, за которые он успешно сбагрит все свое имущество, и предстанет перед сами гол как сокол. Вот и подумаешь тогда, чего стоит точный адрес.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39765060
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherZmeelov2пропущено...

Если адрес не значим - то да

Но один вопрос меня мучает. Если адрес не значим - зачем его вообще вводить?

Чтобы показывать в профиле, например.
Один из моих любимых примеров на тему адресов - поле "адрес" в соцсети или месенджере.
Совершенно очевидно, что там насовсем не нужен никакой КЛАДР, ФИАС и прочее,
а нужна просто строка. И если указал пользователь свой адрес как Optimus Prime - ну и исполать ему.
Т.е. ответ на вопрос в заглавном посте вполне универсален и касается любых данных вообще - смотря что собираетесь с этими данными делать

Cane Cat FisherЗная точный адрес, можно делать с контрагентом всякие интересные вещи, например подать на него в суд.
Это вообще странный пример - адрес для подачи в суд надо брать из государственных баз регистрации, а не из собственной, будь даже она трижды идеально нормализована.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39765079
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если нужно знать город из адреса, для группировки- его надо нормализовывать в справочник.
если нужно страну - её тоже
и т.п.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39765113
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherНо один вопрос меня мучает. Если адрес не значим - зачем его вообще вводить?
А если значим - как можно допускать туда мусор?
Понятие значимости в данном случае расплывчато. Но чтобы далеко не ходить, приведу простой пример из практики. Бюро кредитных историй. Хранить адрес нужно хотя бы по той причине, что этого требует закон. Адрес приходит в виде строки из банка. В банке девочка набивает его с бумажки договора. Не принять "мусор", конечно, можно, вот только это будет нарушение закона. Ваши предложения?
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39765192
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БКИ - страшный сон наяву с его TUTDF.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39765193
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
982183БКИ - страшный сон наяву с его TUTDF.
Нет, спасибо. К этому монстру я отношения не имею.
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39765194
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>> Как хранить адреса в БД?

Ну, не знаю, я сейчас с WordPress работают, там адрес состоит из двух полей - широта и долгота, с привязкой к Гугель Мап. Кажется ничего не забыл?
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39765357
Шавлюк Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter,

Не хватает третьей координаты - высоты над уровнем моря
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39765362
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шавлюк ЕвгенийНе хватает третьей координаты - высоты над уровнем моря

Очевидно предполагается, что цели находятся исключительно на земной поверхности, а не
болтаются в небе и не закопаны на километр под неё.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39765404
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovШавлюк ЕвгенийНе хватает третьей координаты - высоты над уровнем моря

Очевидно предполагается, что цели находятся исключительно на земной поверхности, а не
болтаются в небе и не закопаны на километр под неё.


Мне очень нравится слово "цели" в данном случае. Похоже, вы знаете предназначение этой системы :)
...
Рейтинг: 0 / 0
Как хранить адреса в БД?
    #39769793
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
55 сообщений из 55, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Как хранить адреса в БД?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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