Существует ли общий дизайн базы данных адресов для всех адресов в мире? - PullRequest
111 голосов
/ 30 мая 2009

Я программист и, честно говоря, не знаю структуры уличных адресов в мире, просто как в моей стране структурирована :) так какой же самый лучший и распространенный дизайн базы данных для хранения уличных адресов? Он должен быть настолько простым в использовании, быстрым в запросе и динамичным, чтобы хранить все адреса улиц мира, которые идентифицируются только по одному идентификатору
Большое спасибо

Ответы [ 12 ]

2 голосов
/ 30 мая 2009

Нет, абсолютно нет. Если вы сравните работу американских и японских адресов , вы увидите, что это невозможно.

UPDATE:

Если подумать, все можно сделать, но есть компромисс.

Один из подходов состоит в том, чтобы смоделировать проблему с таблицами address и address_attribute с отношением 1: m между ними, что угодно можно смоделировать. Таблица address_attribute будет иметь pk, имя, значение и fk, которые указывают на pk его родительского адреса. Это почти как использование карты с именем, парой значений.

Компромисс заключается в том, что вам нужно присоединиться каждый раз, когда вам нужен адрес. Вы также должны опросить имена address_attributes, чтобы выяснить, с чем вы имеете дело каждый раз.

Другим подходом было бы проведение более всестороннего исследования того, как моделируются адреса во всем мире. В объектно-ориентированном мире у вас может быть западный класс адресов (street1 / street2 / city / state / zip) и другие для Японии, Китая, столько, сколько нужно для разбиения адресного пространства. Тогда у вас будет основная таблица адресов и дочерние таблицы для других типов с соотношением 1: 1 между ними.

Как это делает Amazon или eBay? Они отправляют на международном уровне. Есть ли у них особенности пользовательского интерфейса? Я использовал только локали США.

1 голос
/ 02 июня 2009

Ваш дизайн должен сильно зависеть от вашей цели. Некоторые люди опубликовали, как структурировать данные. Так что если вы просто хотите отправить кому-то s-mail, это подойдет. Все начинает усложняться, если вы хотите использовать эти данные для навигации. Автомобильная навигация потребует дополнительных структур, содержащих информацию о дорожном движении (например, дороги с односторонним движением), а пешеходная навигация потребует много дополнительных данных. Вот небольшой пример: в моем городе мой район находится рядом с парком. Рядом с парком находится бывший аэродром (фактически один из старейших в Европе), превращенный в музей авиации. Рядом с музеем авиации находится бизнес-парк. Номер улицы для музея - 39, номера бизнес-парков начинаются с 39A. Таким образом, может показаться, что 39 и 39A находятся близко - но для перехода от одного к другому требуется около мили (и даже больше, если ехать на машине).
Это лишь небольшой пример из моего города, я думаю, что вы, вероятно, найдете много исключений (особенно в сельских или диких частях каждой страны).

...