+-------------+----------------------------+-------------------+-----------+-----------+-------------------+
| postal_code | city_district | city | district | region | state |
+-------------+----------------------------+-------------------+-----------+-----------+-------------------+
| 60313 | Innenstadt | Frankfurt am Main | NULL | Darmstadt | Hessen |
| 10719 | Charlottenburg-Wilmersdorf | Berlin | NULL | NULL | Berlin |
| 73773 | NULL | Aichwald | Esslingen | Stuttgart | Baden-Württemberg |
+-------------+----------------------------+-------------------+-----------+-----------+-------------------+
場合によっては、city_district、district、およびregionをNULLにすることもできます。小都市には市区町村はありません。市(フランクフルト・アム・マイン)は、地区を含む/地区とすることができます。市(ベルリン)には、地区と地域が含まれます。ドイツの都市、地域、地区などのデータベースの正規化
テーブルは空であり、検証されたユーザー入力から読み込まれます。私は、独自の表の各列に対して作成され、このように、それらに参加しました:
郵便番号:
city_districtをCITY_ID:CITY_ID
市:district_id
地区:REGION_ID
地域:STATE_ID
状態:名前
SELECT
*
FROM
postalcode
LEFT JOIN
city ON postalcode.city_id = city.id
LEFT JOIN
district ON city.district_id = district.id
LEFT JOIN
region ON district.region_id = region.id
LEFT JOIN
state ON region.state_id = state.id;
これはとても良いですか?正規化以上? NULL値でテーブルを結合するにはどうしたらいいですか?私はジョイントで上記のテーブルを取得したい。 "postalcode"の後に "citydistrict"に参加したい場合は、 "Not unique table/alias"というエラーメッセージが表示されます。どうすればテーブルを正しくエイリアスできますか?
郵便番号:https://en.wikipedia.org/wiki/Postal_codes_in_Germany
シティ地区:https://en.wikipedia.org/wiki/Stadtbezirk
地区: https://en.wikipedia.org/wiki/Districts_of_Germany
リージョン:https://en.wikipedia.org/wiki/Regierungsbezirk
州:https://en.wikipedia.org/wiki/States_of_Germany
こんにちは。単語 "normalize"は、2つの異なることを意味するために使用されます.1NFに入れます。それ自体は固定された意味を持ちません。また、FD&JDごとに上位NFに分解されます。どちらの場合も、値をIDで置き換えることはありません。だから、なぜあなたはその言葉を使用していますか?あなたは何の言葉に従っているのですか、その言葉は何を意味すると思いますか、あなたは何を達成しようとしていると思いますか?また、リレーショナル・モデルにはヌルはありません。したがって、*あなた*は、あなたの参照が「正規化」と言うのはNULLであることを伝える必要があります。あなたの分解/再構成は直感的には妥当ですが、なぜ*正確にあなたはそれをそのようにしていますか? – philipxy
PSなので、* Googleの検索では、SQLのテーブルエイリアスの使い方について何を伝えますか? – philipxy
重複を避けたい。 –