Каков наилучший способ установить эти данные в базе данных? - PullRequest
1 голос
/ 09 июля 2011

У меня есть таблица ссылок и почтовых индексов. Так получилось, что в одном городе может быть несколько почтовых индексов, поэтому как мне установить БД, чтобы я мог вытащить правильные почтовые индексы при вводе названия города или получить правильный город при вводе почтового индекса.

Должна ли это быть одна таблица со всеми данными, или три, где у одного есть города, у одного - почтовые индексы, а у третьего - соответствующие ассоциации?

Ответы [ 2 ]

3 голосов
/ 09 июля 2011

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

0 голосов
/ 09 июля 2011

Прожив в Киссимми и работая в UPS (запоминая почтовые индексы), города Киссиме и Фестиваль во Флориде имеют одинаковый почтовый индекс 34747. Я лично использую несколько таблиц: страны, регионы (штаты) и населенные пункты (города) , Таблица стран содержит название страны и другие соответствующие данные. Таблица регионов в основном такая же, но имеет внешний ключ к названию страны. Таблица населенных пунктов имеет внешний ключ к названию региона, а также почтовый индекс и другие соответствующие данные. Я создаю первичный ключ, ссылающийся на несколько столбцов в таблице локальностей (имя, регион, почтовый индекс), таблицу регионов (имя, страна) и таблицу стран (имя), чтобы повысить производительность. Моя таблица местностей может поэтому обрабатывать (Kissimmee, FL, 34747) и (Celebration, FL, 34747), а также (Orlando, FL, 32801) и (Orlando, FL, 32802). В любом случае, я обрабатываю возврат нескольких результатов, если я ищу по почтовому индексу или городу. Однако, в зависимости от того, как ваши исходные данные получены, вы можете захотеть сделать булев столбец «метрополия» в своей таблице локальностей, чтобы указать (в моем примере), что Киссимми является столичной областью для празднования и разрешить только один мегаполис на почтовый индекс .

...