Anda menulis dalam komentar di atas:
buku "Dasar-dasar Sistem Basis Data" [...] mengatakan [...] bahwa disarankan untuk menggunakan tabel persimpangan jika ada banyak nilai NULL di kolom kunci asing (misalnya: jika 98% karyawan jangan mengelola departemen)
Ketika ada banyak nilai NULL di kolom kunci asing, program Anda harus berurusan dengan kolom yang sebagian besar kosong ini untuk setiap catatan yang mereka proses. Kolom mungkin akan menempati beberapa ruang disk walaupun 98% dari semua kasusnya kosong, menanyakan hubungan berarti menanyakan kolom yang memberi Anda lebih banyak lalu lintas jaringan, dan jika Anda menggunakan ORM yang menghasilkan kelas dari tabel, program Anda juga akan membutuhkan lebih banyak ruang di sisi klien daripada yang diperlukan. Menggunakan tabel persimpangan menghindari ini, hanya akan ada catatan tautan yang diperlukan di mana kunci asing yang setara tidak akan menjadi NULL.
Menentang itu, jika Anda tidak hanya memiliki beberapa nilai NULL, katakanlah 50% atau lebih hubungan bukan NULL, menggunakan tabel persimpangan memberi Anda efek sebaliknya - lebih banyak ruang disk, kompleksitas yang lebih tinggi menghasilkan lebih banyak lalu lintas jaringan dll.
Jadi menggunakan tabel persimpangan hanyalah bentuk optimasi, hanya masuk akal untuk kasus tertentu, dan terutama saat ini, di mana ruang disk dan memori menjadi lebih murah, lebih jarang dibutuhkan. Perhatikan bahwa "Dasar-dasar Sistem Basis Data" awalnya ditulis lebih dari 20 tahun yang lalu (saya menemukan referensi ke edisi kedua dari 1994), dan saya kira rekomendasi itu sudah ada di sana pada waktu itu. Sebelum 1994, optimasi ruang mungkin jauh lebih penting daripada hari ini, karena penyimpanan massal masih lebih mahal dan komputer dan jaringan jauh lebih lambat daripada hari ini.
Sebagai catatan untuk komentar pemilih: pernyataan di atas hanya mencoba mengantisipasi apa yang ada dalam pikiran penulis "Fundamentals of Database Systems" dalam rekomendasinya, saya kira dia membuat pernyataan umum yang kasar, valid untuk sebagian besar sistem. Dalam beberapa database ada optimasi lain yang mungkin seperti "kolom jarang" yang membuat penggunaan tabel persimpangan bahkan lebih usang.
Jadi jangan salah rekomendasi itu. Buku ini tidak memberitahu Anda untuk memilih tabel persimpangan untuk {0,1}:n
hubungan secara umum, atau - seperti yang Anda tulis - bahwa ini adalah "cara yang benar". Gunakan optimasi seperti ini yang akan membuat program Anda lebih rumit hanya ketika Anda benar-benar membutuhkannya.