7

現在、世界のすべての主要都市、それらの国に対応する各地域/州、およびそれらの州/地域にある各都市に関する情報を格納する 3 つのテーブルがあります。

市、州、国

現在、データベースには、住所、郊外、都市、州/地域、国というまったく同じ5つの列を必要とするユーザーまたは組織テーブルなど、約6つの他のテーブルがあります。したがって、これらの 5 つの情報を格納する「場所」テーブルを使用するのが「良い」正規化プラクティスであるかどうか疑問に思っていました。その後、Users または Organizations テーブルには、参照先の location_id が含まれます。

都市、州、および国と場所の表

良いアイデアですか、それとも悪いアイデアですか?また、6 つのテーブルのそれぞれに同じ 5 つの列を含めるのではなく、home_phone、business_phone、mobile_phone、email_address を含む同じ原則で「Contacts」テーブルを使用することも検討しています。

アドバイスをいただければ幸いです。どうもありがとう!

4

2 に答える 2

8

これは不必要な関係のセットです。代わりに、都市から地域/国を取得できます。

下の画像では、地域と国が逆になっていることに注意してください。

ここに画像の説明を入力

当然のことながら、実際にクエリを記述するために、都市、国、および地域を組み合わせたビューを定義すると便利です。また、このレベルに正規化することは、実際には非常に良い考えだと思います。場所テーブルに新しいフィールドを追加するときは、それを分割してよかったと思うでしょう ;-)

于 2011-04-07T12:23:02.513 に答える
1

あなたはすでにやり過ぎていると思います。地域、都市、国を個別のテーブルとして使用すると、データの不整合を発生させずにエントリを簡単に管理できるため、優れています。ただし、ユーザー/組織ごとに個別の (場所) テーブルに住所データを格納する必要はありません。これらのフィールドをユーザー/組織テーブルに追加します。

編集:RBはそれをより詳細に説明しました:)

于 2011-04-07T12:24:47.517 に答える