Лучшие практики для хранения почтовых адресов в базе данных (RDBMS)? - PullRequest
94 голосов
/ 22 ноября 2008

Есть ли хорошие рекомендации по передовым методам хранения почтовых адресов в СУБД? Кажется, есть много компромиссов, которые можно сделать, и много плюсов и минусов для каждого из них, чтобы оценить - конечно, это было сделано снова и снова? Может, кто-то хотя бы написал, где-то извлек уроки?

Примерами компромиссов, о которых я говорю, является сохранение почтового индекса в виде целого числа по сравнению с полем char, если номер дома должен храниться как отдельное поле или часть адресной строки 1, если номера suite / apartment / etc будут нормализованы или просто хранится в виде фрагмента текста в адресной строке 2, как вы обрабатываете zip + 4 (отдельные поля или одно большое поле, целое число против текста)? и т.д.

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

Ответы [ 14 ]

2 голосов
/ 22 ноября 2008

Где «компромисс» в хранении ZIP как NUMBER или VARCHAR? Это просто выбор - это не компромисс, если нет преимуществ для обоих, и вы должны отказаться от некоторых преимуществ, чтобы получить другие.

Если сумма zips не имеет никакого значения, Zips как число бесполезен.

1 голос
/ 15 января 2015

Вдохновлен База данных ответов

Line1
Line2
Line3
City
Country_Province
PostalCode
CountryId
OtherDetails
1 голос
/ 24 августа 2013

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

Почтовый индекс является общим необязательным полем для проверки транзакций по платежной карте без использования полного адреса. Так что для этого есть отдельное и щедрое по размеру поле (не менее 10 символов).

0 голосов
/ 13 сентября 2010

Я бы просто соединил все поля в большое поле NVARCHAR (1000) с элементом textarea, чтобы пользователь мог ввести значение (если вы не хотите выполнять анализ, например, по почтовым индексам). Все эти адреса адресной строки 1, адресной строки 2 и т. Д. Просто раздражают, если у вас есть адрес, который не вписывается в этот формат (и, вы знаете, есть другие страны, кроме США).

...