私は何年にもわたっていくつかの異なるアプリでこれに苦労してきました。これをどのように設定するかは、ニーズによって異なります。私は手頃な価格の住宅で働いています。私たちがしなければならないことの1つは、さまざまな地理的要素(市、郡、州など)をHU(米国の住宅と都市開発)によって定義されたさまざまな地域に関連付けることです。
私が最終的に得たものは、これに少し似ています:
tblState:
StateID
StateCode (AL, AK, AR . . . etc)
StateName (Alabama, Alaska, Arkansas, . . . etc)
tblCounty
CountyID
HUDRegionID FK to tblHUDRegion
StateID FK to tbleState
CountyName (Pierce County, WA; Lane County, OR)
NOTE: I recognize I could normalize even further and create a table of count names, many-to-many related to States ON stateID, but there's a limit, man!)
tblCity
CityID
CountyID
CityName
tblZIPCOde
ZIPCodeID
CityID
tblHUDRegion
HUDRegionID
HUDRegionCode
HUDRegionName
私の場合、HUDリージョンは郡レベルで定義されます(1つのHUDリージョンには1つ以上の郡(または場合によっては「County-Towns」)が含まれます)。各HUDリージョンには、実際には任意のHUD(HUD CBSA_Sub)で定義された一意の識別子があります。これを「HUD-region_code」として使用します。また、HUDリージョンには、1つ以上の州の郡を含めることができることに注意してください。したがって、HUDリージョン識別子は郡に関連付けられていますが、各郡を通じて間接的にのみ州に関連付けられています。たとえば、HUD "Portland / Vancouver / Beaverton" HUD MSAには、オレゴン州とワシントン州の両方の郡(および市)が含まれます。
あなたの場合、もう1つのトップレイヤーtblCountryを定義する必要があります。さらに、他の国に対応するために、「郡」と「州」の概念を少し調整する必要がある場合があります(「州」およびそれらが市より大きく、州よりも小さい細分化に使用するものはすべて。この場合、「地域」が機能する可能性があります。同様に-私は多くのヨーロッパの国々が「地域」を使用していると信じています)。
国には1つ以上の州(または同等のもの)があります。州には1つ以上の郡(または同等の郡)があります。郡には1つ以上の都市があります。また、都市には少なくとも1つの郵便番号がある傾向があります。
私の場合、HUDリージョンなどのリージョンは、これらのレベルの1つで集約として定義される傾向があります。
多くの場合、このHUD駆動モデル以外で開発する必要がありました(ZIPまたは郡ごとにどのHUD MSAが機能しているかを確認する必要がある場合がよくあります。すべての場合において、HUDを想定するのは安全ではありません。地域は特定の州に含まれています。
また、USPSが特定の地域の郵便番号を定期的に変更することにも注意してください。