Sie haben oben in einem Kommentar geschrieben:
In dem Buch "Fundamentals of Database Systems" [...] heißt es, dass die Verwendung einer Schnittstellentabelle empfohlen wird, wenn die Fremdschlüsselspalte viele NULL-Werte enthält (z. B. 98% der Mitarbeiter) keine Abteilung leiten)
Wenn die Fremdschlüsselspalte viele NULL-Werte enthält, müssen Ihre Programme diese meist leere Spalte für jeden Datensatz, den sie verarbeiten, verarbeiten. Die Spalte wird wahrscheinlich etwas Speicherplatz belegen, obwohl sie in 98% aller Fälle leer ist. Das Abfragen der Beziehung bedeutet, dass die Spalte abgefragt wird, die Ihnen mehr Netzwerkverkehr bietet, und wenn Sie einen ORM verwenden, der Ihre Klassen aus Ihren Tabellen und Programmen generiert wird auch mehr Platz auf der Client-Seite benötigen als nötig. Durch die Verwendung einer Schnittstellentabelle wird dies vermieden. Es sind nur Verknüpfungsdatensätze erforderlich, bei denen der entsprechende Fremdschlüssel andernfalls nicht NULL wäre.
Wenn Sie dagegen nicht nur wenige NULL-Werte haben, sagen wir, dass 50% oder mehr Relationen nicht NULL sind. Wenn Sie eine Schnittstellentabelle verwenden, erhalten Sie den gegenteiligen Effekt - mehr Speicherplatz, höhere Komplexität, was zu mehr Netzwerkverkehr usw. führt.
Die Verwendung einer Schnittstellentabelle ist also nur eine Form der Optimierung, die nur für einen bestimmten Fall sinnvoll ist, und insbesondere heutzutage, wo Speicherplatz und Arbeitsspeicher billiger wurden, viel seltener benötigt wird. Beachten Sie, dass "Fundamentals of Database Systems" ursprünglich vor mehr als 20 Jahren geschrieben wurde (ich habe einen Verweis auf die zweite Ausgabe von 1994 gefunden), und ich vermute, dass die Empfehlung zu diesem Zeitpunkt bereits da war. Vor 1994 war die Speicherplatzoptimierung wahrscheinlich viel wichtiger als heute, da Massenspeicher noch teurer und Computer und Netzwerke viel langsamer waren als heute.
Als Randnotiz zu einem wählerischen Kommentar: Die obige Aussage versucht nur zu ahnen, was der Autor von "Fundamentals of Database Systems" mit seiner Empfehlung vor Augen hatte. Ich denke, er machte eine grobe, allgemeine Aussage, die für die meisten Systeme gültig ist. In einigen Datenbanken gibt es andere mögliche Optimierungen wie "Spalten mit geringer Dichte", die die Verwendung einer Schnittstellentabelle noch überflüssiger machen.
Verstehen Sie diese Empfehlung also nicht falsch. Das Buch sagt Ihnen nicht, dass Sie Kreuzungstabellen für {0,1}:n
Beziehungen im Allgemeinen bevorzugen sollen oder - wie Sie geschrieben haben - dass dies der "richtige Weg" ist. Verwenden Sie Optimierungen wie diese, die Ihre Programme nur dann komplizierter machen, wenn Sie sie wirklich benötigen.