MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Warum ist ein mehrwertiges Feld in relationalen Datenbanken eine schlechte Idee?

Der Hauptnachteil ist der Query Bias. Das Phänomen, dass solche Datenbanken dazu neigen, mit Blick auf eine bestimmte Art von Abfragen entworfen zu werden, und sich als schwierig zu handhaben erweisen, wenn andere Abfragen geschrieben werden müssen.

Angenommen, Sie haben Studenten und Kurse und modellieren all dies so, dass Sie in einer einzelnen Zeile in einer einzelnen Tabelle sagen können:„John Doe nimmt {Französisch, Algebra, Beziehungstheorie}“ und „Jane Doe nimmt {German, Functional Computing, relationale Theorie}".

Das macht es einfach zu fragen, „was sind all die Kurse, die von ... belegt werden“, aber versuchen Sie sich vorzustellen, was nötig wäre, um die Antwort auf „was sind all die Studenten, die der relationalen Theorie folgen“ zu geben.

Versuchen Sie sich vorzustellen, was das System selbst tun müsste, um einer solchen Abfrage (wenn es möglich wäre, sie zu schreiben) eine Chance zu geben, vernünftig zu funktionieren ...