Cara Anda memilikinya adalah yang paling optimal sejauh batasan waktu berjalan. Tentu, ini membutuhkan lebih banyak ruang, tapi itu bagian dari pertukaran ruang-waktu - Jika Anda ingin lebih cepat, Anda menggunakan lebih banyak ruang; jika Anda ingin menggunakan lebih sedikit ruang, itu akan berjalan lebih lambat (rata-rata).
Juga, pikirkan masa depan. Saat ini, Anda mungkin memilih negara untuk setiap pengguna, tetapi tunggu saja. Berkat keajaiban scope creep, aplikasi Anda suatu hari nanti harus memilih semua pengguna di negara tertentu, di mana pemindaian bidang "NEGARA" setiap pengguna untuk menemukan kecocokan akan sangat lambat, bukan hanya mundur melalui USER_COUNTRY_REL tabel seperti yang dapat Anda lakukan sekarang.
Secara umum, untuk korelasi 1-ke-1 atau 1-ke-banyak, Anda dapat menautkan dengan kunci asing. Untuk korelasi banyak ke banyak, Anda ingin memiliki tabel relasi di antara keduanya. Skenario ini adalah hubungan banyak-ke-banyak, karena setiap pengguna memiliki beberapa negara, dan setiap negara memiliki beberapa pengguna.