Escribiste en un comentario arriba:
el libro "Fundamentos de los sistemas de bases de datos" [...] dice que [...] se recomienda usar una tabla de intersección si hay muchos valores NULL en la columna de clave externa (por ejemplo: si el 98% de los empleados no gestiones un departamento)
Cuando hay muchos valores NULL en la columna de clave externa, sus programas tendrán que lidiar con esta columna en su mayoría vacía para cada registro que procesen. La columna probablemente ocupará algo de espacio en el disco, aunque en el 98% de los casos esté vacía, consultar la relación significa consultar esa columna que le brinda más tráfico de red, y si está utilizando un ORM que genera clases a partir de sus tablas, sus programas También necesitará más espacio del lado del cliente de lo necesario. El uso de una tabla de intersección evita esto, solo habrá registros de enlaces necesarios donde la clave externa equivalente no sería NULL de lo contrario.
Opuesto a eso, si no tiene solo unos pocos valores NULL, digamos que el 50% o más de las relaciones no son NULL, el uso de una tabla de intersección le da el efecto contrario: más espacio en disco, mayor complejidad que resulta en más tráfico de red, etc.
Por lo tanto, el uso de una tabla de intersección es solo una forma de optimización, solo sensible para un caso específico, y especialmente hoy en día, donde el espacio en disco y la memoria se volvieron más baratos, mucho menos necesarios. Tenga en cuenta que "Fundamentos de los sistemas de bases de datos" se escribió originalmente hace más de 20 años (encontré una referencia a la segunda edición de 1994), y supongo que esa recomendación ya estaba allí en ese momento. Antes de 1994, la optimización del espacio era probablemente mucho más importante que hoy, ya que el almacenamiento masivo era aún más costoso y las computadoras y las redes eran mucho más lentas que hoy.
Como nota al margen de un comentario exigente: la declaración anterior solo está tratando de anticipar lo que el autor de "Fundamentos de los sistemas de bases de datos" tenía en mente con su recomendación, supongo que estaba haciendo una declaración general, válida para la mayoría de los sistemas. En algunas bases de datos hay otras optimizaciones posibles como "columnas dispersas" que hacen que el uso de una tabla de intersección sea aún más obsoleto.
Así que no te equivoques con esa recomendación. El libro no le dice que prefiera las tablas de intersección para las {0,1}:n
relaciones en general, o, como escribió, que esta es la "forma correcta". Utilice optimizaciones como esta que harán que sus programas sean más complicados solo cuando realmente los necesite.