Подтвердить что ты не робот

Каков наилучший способ хранения международных адресов в базе данных?

Каков наилучший способ хранения международных адресов в базе данных? Ответьте в форме схемы и объясните причины, по которым вы решили нормализовать (или нет), как вы это делали. Также объясните, почему вы выбрали тип и длину каждого поля.

Примечание. Вы сами решаете, какие поля вы считаете необходимыми.

4b9b3361

Ответ 1

Обычный текст свободной формы.

Проверка всех мировых почтовых/почтовых индексов слишком сложна; фиксированный список стран слишком политически чувствителен; обязательное государство/регион/другое административное подразделение просто неуместно (слишком часто меня спрашивают, в каком округе я живу - когда я этого не делаю, потому что Большой Лондон не является округом вообще).

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

Исключением является то, что вы делаете то, что, естественно, ограничивается одной страной. В этой ситуации вы должны спросить, скажем, пару {почтовый индекс, номер дома}, которой достаточно для идентификации почтового адреса. Я думаю, вы могли бы достичь аналогичных вещей с расширенным почтовым индексом в США.

Ответ 2

В прошлом я смоделировал формы, которые должны были быть международными после того, как на своих сайтах были обработаны адресные формы ups/fedex (я понял, что они не знают, как обращаться с международным заказом, который мы все закрыли). Используемые поля могут использоваться в качестве ссылки для настройки вашей схемы.

Ответ 3

В общем, вам нужно понять, почему вы хотите получить адрес. Это для доставки/рассылки? Тогда есть действительно только одно требование, разделите страну. Другие строки - это произвольная форма, заполняемая пользователем. Причиной этого является общая стратегия переадресации почты: любая входящая почта для иностранного государства отправляется без просмотра других адресных строк. Следовательно, подробная информация анализируется только сортировщиком почты, расположенным в самой стране. Как и получатель, они будут знакомы с национальными соглашениями.

(ИБП может объединить несколько небольших европейских стран, например, все Низкие страны, вероятно, обслуживаются из Бельгии - идея по-прежнему сохраняется.)

Ответ 4

Я думаю, что добавление текста в страну/город и адрес будет прекрасным. страна и город должны быть раздельными для отчетности. Менеджеры всегда запрашивают такие отчеты, которые вы не ожидаете, и я не предпочитаю запускать запрос LIKE через большую базу данных.

Ответ 5

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

Я считаю, что лучшим решением является доступ к базе данных сторонних разработчиков, которая содержит желаемый географический охват, и использовать ее для первоначального извлечения информации о вашем местоположении пользователя. Это позволит вам избежать необходимости создавать собственные. В любом случае вы можете уменьшить нагрузку на свой сервер, разрешив своим новым пользователям получать правильную информацию автозаполнения непосредственно у вашего стороннего поставщика. В конце концов вы сможете заполнить большую часть автозаполнения для информации о местоположении, такой как город, страна и т.д., Из информации, содержащейся в вашей собственной базе данных, из пользовательских входных данных.

Ответ 6

Вам нужно предоставить более подробную информацию о том, как вы планируете использовать данные. Например, такие поля, как "Город", "Страна", "Страна", могут быть либо текстовыми в одной таблице, либо быть кодами, которые связаны с отдельной таблицей с внешним ключом.

Проще всего было бы

Address_Line_01 (обязательно, не пусто) Address_Line_02 Address_Line_03 веха Город (обязательно) Pin (обязательно) Province_District Состояние (обязательно) Страна (обязательно)

Все вышеперечисленное может быть Text/Unicode с соответствующими полями длины.

Телефонные номера, если применимо.