Моему приложению нужно будет ссылаться на адреса. Информация об улице будет храниться вместе с моими основными объектами, но остальное нужно хранить отдельно, чтобы уменьшить избыточность. Как мне хранить / извлекать ZIP, города и штаты? Вот некоторые из моих идей.
решение для одной таблицы (отношения не могут)
[места]
locationID
locationParent (FK для locationID - 0 для записей состояния)
locationName (город, штат)
locationZIP
две таблицы (со связями, ограничениями FK, ссылочной целостностью)
[состояние]
stateID
StateName
[город]
CityId
StateID (FK для state.stateID)
название города
ZipCode
три стола
[состояние]
stateID
StateName
[город]
CityId
StateID (FK для state.stateID)
CITYNAME
[застежка-молния]
zipID
cityID (FK для city.cityID)
zipName
Затем я прочитал в почтовые индексы и как они назначены. Они не связаны конкретно с городами. В некоторых городах более одного почтового индекса (хорошо, все равно будет работать), но некоторые почтовые индексы находятся в более чем одном городе (о, хватит), а некоторые другие почтовые индексы (очень мало) находятся в нескольких штатах! Также некоторые почтовые индексы даже не находятся в том же состоянии, что и адрес, к которому они принадлежат. Кажется, почтовые индексы сделаны для идентификации маршрута перевозчика, а некоторые отдаленные места лучше всего обслуживать почтовые отделения в соседних городах или штатах.
Кто-нибудь знает хорошее (не идеальное) решение, которое учитывает это, чтобы минимизировать несоответствия по мере роста базы данных?