考慮してください: 私が州を知っていて、州の FK が国である場合、私は国を推移的に知っており、それを再び含めることは冗長な非正規化です。
私が都市を知っていて、都市の FK が州である場合、私は推移的に州を知っており、それを再び含めることは冗長な非正規化です。
つまり、都市がわかれば、州もわかり、国もわかります。
ADDRESS(id, address, city_fk), CITY(id, name, stateFK), STATE(id, name, countryFK), COUNTRY(id, name)
実際には、都市をエンティティまたは属性にすることには正当な議論があります。郵送先住所のようなものについては、おそらく属性にする方が簡単です。
「有権者ファイル」(選挙や政治キャンペーンに使用されるデータベース) のようなものでは、都市をエンティティにするのが理にかなっているかもしれません。これは米国バージニア州で特に重要です。この州は、ほとんどの都市が郡に属している米国の他の地域とは異なり、法人化された都市が独立した政治管轄区であるという点で米国ではユニークです。
バージニア州以外の州でも、カウンティの一部である都市では (市長と評議会の) 選挙が別々に行われるため、政治データベースでは、都市を (さらに小さくなり、ワードと地区、タウンシップと村を作り、大きくすることで) 便利です。 、郡と HD、SD と CD) をエンティティに変換します。
たとえば、米国オハイオ州のレイクウッドを見てみましょう。管轄区域では、レイクウッドはカヤホガ郡です。政治的なテレビ広告に関しては、クリーブランド、アクロン、カントンのテレビ指定マーケット エリアの一部です。クリーブランド市のすぐ外にあり、管轄区域でもカヤホガ郡の一部です。レイクウッドは 4 つの評議会区に分かれており、各区は 15 以上の地区に分かれています。レイクウッドとクリーブランド市の西側の一部を含む州議会議事堂第 13 地区の一部です。州上院第 23 区の一部であり、ブルックリン、ブルック パーク、クリーブランド (第 7 区から第 21 区および第 14 区の一部)、レイクウッド、リンデール、ミドルバーグ ハイツ、パルマ、パルマ ハイツを含んでいます。レイクウッドは、オハイオ州の第 10 連邦下院選挙区 (デニス クシニッチが代表) にあります。
では、オハイオ州の任意の有権者について、投票時に誰が投票用紙に載っているかをデータベースでどのように表すのでしょうか?