Hai scritto in un commento sopra:
il libro "Fondamenti di sistemi di database" [...] afferma che si consiglia di utilizzare una tabella di intersezione se nella colonna chiave esterna sono presenti molti valori NULL (ad esempio: se il 98% dei dipendenti non gestire un dipartimento)
Quando ci sono molti valori NULL nella colonna chiave esterna, i tuoi programmi dovranno occuparsi di questa colonna per lo più vuota per ogni record che elaborano. La colonna occuperà probabilmente un po 'di spazio su disco anche se nel 98% dei casi è vuota, interrogare la relazione significa interrogare quella colonna che ti dà più traffico di rete e se stai usando un ORM che genera le classi dalle tue tabelle, i tuoi programmi avrà anche bisogno di più spazio sul lato client del necessario. L'uso di una tabella di intersezione evita questo, ci saranno solo i record di link necessari dove altrimenti la chiave esterna equivalente non sarebbe NULL.
Al contrario, se non hai solo pochi valori NULL, diciamo che il 50% o più relazioni non sono NULL, l'uso di una tabella di intersezione ti dà l'effetto opposto: più spazio su disco, maggiore complessità con conseguente più traffico di rete ecc.
Quindi utilizzare una tabella di intersezione è solo una forma di ottimizzazione, sensata solo per un caso specifico, e soprattutto al giorno d'oggi, in cui lo spazio su disco e la memoria sono diventati più economici, molto meno frequentemente necessari. Si noti che "Fondamenti dei sistemi di database" è stato originariamente scritto più di 20 anni fa (ho trovato un riferimento alla seconda edizione del 1994) e immagino che la raccomandazione fosse già lì in quel momento. Prima del 1994, l'ottimizzazione dello spazio era probabilmente molto più importante di oggi, poiché l'archiviazione di massa era ancora più costosa e i computer e le reti erano molto più lenti di oggi.
Come nota a margine di un commento schizzinoso: la precedente affermazione sta solo cercando di anticipare ciò che l'autore di "Fundamentals of Database Systems" aveva in mente con la sua raccomandazione, immagino che stesse facendo una dichiarazione generale approssimativa, valida per la maggior parte dei sistemi. In alcuni database ci sono altre possibili ottimizzazioni come "colonne sparse" che rendono ancora più obsoleto l'uso di una tabella di intersezione.
Quindi non fraintendere quella raccomandazione. Il libro non ti dice di preferire le tabelle di intersezione per le {0,1}:n
relazioni in generale, o - come hai scritto - che questo è il "modo corretto". Usa ottimizzazioni come questa che renderanno i tuoi programmi più complicati solo quando ne avrai davvero bisogno.