Что вы считаете лучшим балансом столбцов в адресной таблице? - PullRequest
4 голосов
/ 11 сентября 2009

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

Какие столбцы вы создаете в своей «адресной» таблице (или таблицах, если вы нормализуете адреса более чем на один) и каковы ваши причины?

Ответы [ 3 ]

4 голосов
/ 11 сентября 2009
  • строка 1
  • строка 2
  • строка 3
  • местонахождение
  • регион
  • почтовый индекс
  • страна (являющаяся внешним ключом в таблице стран)

За исключением страны, все эти поля являются текстовыми (varchar).

Предполагается, что получатель хранится в другом месте.

Также может быть целесообразно, скажем, потерять одну из строк и заменить ее на:

  • номер улицы
  • название улицы

, поскольку это может помочь с проверкой, поиском адреса через веб-службы и т. Д.

2 голосов
/ 11 сентября 2009

Я собираюсь бросить в ответ "это зависит". Если ваше приложение касается только правильно напечатанных адресных меток, может быть достаточно набора строк (line1, line2, line3 и т. Д.). Текстовый BLOB-объект также может работать в зависимости от способа ввода данных. Дать пользователю коробку и позволить ему печатать? Заставить их поместиться в 3, 4, 5 строк? Безотносительно.

Однако, если вы хотите иметь возможность «что-то делать» с данными, например сортировать по почтовому индексу, анализировать распределение по городам, штатам и / или странам или отслеживать, сколько цифр в ваших уличных адресах (10 Main St. против 54321 Main St.), тогда вам понадобятся отдельные столбцы для каждого значимого фрагмента информации.

Кажется вероятным, что требования будут "включать пространство для адреса", а решения относительно того, что на самом деле будет сделано с адресами, будут приняты позже ... в это время они захотят иметь возможность сортировки / подсчета / возведения в степень / что угодно, даже если они никогда этого не сделают. По ссылке (ссылкам), на которые есть ссылки в других публикациях, после выхода на международный уровень это может быть действительно очень сложно. Я бы сказал, постарайтесь сделать это как можно более простым и разумным, когда «разумный» зависит от бизнес-аргументов , стоящих за требованиями.

1 голос
/ 11 сентября 2009

В идеальном мире каждое приложение будет хранить адреса в каноническом формате, таком как UPU или BS7666. Значительно проще объединить структурированный адрес в одну строку для печати, чем впоследствии извлечь элементы адреса из одного фрагмента текста. Потому что рано или поздно кто-то, может быть, не вы захотите «что-то сделать» с адресной информацией. Хранилища данных сейчас очень модны.

К сожалению, для реализации чего-то вроде BS7666 обычно требуется программное обеспечение для проверки адреса. Неразумно просить обычного пользователя указать адрес в прокрустовом формате: мы не можем ожидать, что они поймут разницу между locality, town и post town. И вводить в заблуждение что-то в стандартном формате вводит в заблуждение, когда это еще не подтверждено.

Но перейдите на какую-то форму структуры. Кроме того, по крайней мере, проверьте почтовый индекс / почтовый индекс с помощью регулярного выражения, чтобы убедиться, что он в правильном формате.

...