2017-12-16 4 views
5

Ich möchte zu Mungo verschieben, aber ich muss verstehen, wie meine MySQL-Tabellen auf keine SQL-basierte Datenbanken abbilden.Wie werden redundante Daten in nicht relationalen Datenbanken vermieden?

Insbesondere verwende ich Joins, um die Replikation von Daten zu vermeiden. Das ist, wenn ich 2 Tabellen (B & C) habe, die 1 Tabelle (A) bezogen. Ich kann einfach bei Bedarf Tabelle A mit B verbinden oder bei Bedarf Tabelle A mit C verbinden.

Wie würde das in mongoose/mongodb funktionieren, d. H. NoSQL.

Antwort

2

Was Sie beschreiben, ist normalisierte Daten. Die Normalisierung in Datenbanken ist ein Merkmal relationaler Datenbanken. Dokument-orientierte No-SQL-Datenbanken wie MongoDB verwenden ein anderes Paradigma, in dem Sie die dtaa um ein Doucnet-Paradigma herum strukturieren. In dieser Welt sind die Daten in Dokumenten (JSON-Strukturen) angeordnet. Sie können auf andere Strukturen zeigen, aber es gibt immer einen Kompromiss. Sie müssen entscheiden, welches Level der Datenredundanz funktioniert, aber das ist wirklich ein zweitrangiges Problem. Ihre erste Priorität in einer MongoDB-ähnlichen Welt ist herauszufinden, was im Kontext am sinnvollsten ist. Beispielsweise haben Sie möglicherweise ein Dokument, das eine Rechnung mit eingebetteten Werbebuchungen darstellt, aber auch einen Zeiger auf ein separates Kundenobjekt. Sie können aber auch in der gleichen Datenbank ein um den Kunden entworfenes Dokument haben, in dem Rechnungshefte verschachtelt oder sogar Rechnungszeilen verschachtelt oder Rechnungsheader mit darin verschachtelten Rechnungszeilen oder gekauften Produkten mit oder ohne Produktkataloginformationen verschachtelt sind .

Joins sind in einer MongoDB-Welt im Allgemeinen teuer, aber der Reichtum an Daten, die für eine Reihe von Zwecken auf mehrere Arten gespeichert werden, ist eine nützliche Funktion - im richtigen Kontext.

Sie sollten MongoDB nicht als Ersatz für ein relationales DBMS, sondern als Teil eines größeren polyglotten (mehrsprachigen) Persistenzentwurfs sehen. Sie können auch andere Daten-Tools wie Redis und Neo4J als Teil dieser Welt verwenden, um verschiedene Dinge zu tun.

Pferde für Kurse; MongoDB ist nicht für alles.

Verwandte Themen