Sepertinya Anda sedang mengumpulkan data untuk direktori telepon. Apakah kamu? Mengapa negara bagian penting bagi Anda? Jawaban atas pertanyaan ini mungkin akan menentukan desain database mana yang paling cocok untuk Anda.
Anda mungkin berpikir bahwa sudah jelas apa itu kota. Ini bukan. Itu tergantung pada apa yang akan Anda lakukan dengan data tersebut. Di AS, ada unit yang disebut MSA (Metropolitan Statistical Area). Kansas City MSA mencakup Kansas City, Kansas dan Kansas City, Missouri. Apakah unit MSA masuk akal atau tidak tergantung pada tujuan penggunaan data. Jika Anda menggunakan kode area di AS untuk menentukan kota, Anda akan mendapatkan pengelompokan yang sangat berbeda dari MSA. Sekali lagi, itu tergantung pada apa yang akan Anda lakukan dengan data tersebut.
Secara umum setiap kali pola hierarki subdivisi politik rusak, solusi paling umum adalah mempertimbangkan hubungan banyak-ke-banyak. Anda memecahkan masalah ini dengan cara yang sama seperti Anda memecahkan masalah banyak-ke-banyak lainnya. Dengan membuat tabel baru, dengan dua kunci asing. Dalam hal ini kunci asingnya adalah IdAreacode dan IdStates.
Sekarang Anda dapat memiliki satu kode are di banyak negara bagian dan satu negara bagian yang mencakup banyak kode area. Tampaknya memalukan untuk menerima overhead ekstra ini untuk menutupi hanya satu pengecualian. Tahukah Anda apakah pengecualian yang Anda temukan hanyalah puncak gunung es, dan ada banyak pengecualian seperti itu?