Was ist das akzeptierte Muster für den Umgang mit Viele-zu-Viele-Beziehungen in einem Dokument-Datenbank-Design?Nosql many-to-many
Antwort
Wie Sie die Viele-zu-Viele-Modelle modellieren wollen, hängt davon ab, welche Art von Anfragen Sie stellen möchten, wie Sie die Daten aktualisieren möchten usw. Sagen wir, wir haben Foos in Bezug auf Bars in vielen viele Mode.
Sie eine foo als
{
'bars': ['bar1', 'bar2', 'bar3']
}
Modell könnte und eine Bar
{
'foos': ['foo_x', 'foo_y', 'foo_z']
}
modellieren Oder Sie könnten das Diagramm oder die Beziehungen zwischen foo und bar als einzelne Dokumente selbst
{
from: 'foo1',
to: 'bar1'
}
{
from: 'foo1',
to: 'bar2'
}
{
from: 'foo2',
to: 'bar3
}
{
from 'foo3',
to: 'bar3'
}
modellieren
Es gibt viele andere Möglichkeiten. Wie Sie dies tun möchten, hängt von den Fragen ab, die Sie stellen möchten, von den Operationen, die Sie unterstützen möchten, von dem, was effizient sein soll, und von der Indizierung, die in der Datenbank verfügbar ist.
Angenommen, wir sprechen über Fälle, in denen eine Beziehung wirklich notwendig ist und nicht nur solche, die nur bestehen, weil SQL Beziehungen besser behandelt als komplexe Objekte, ähnelt das Design dem Standard für SQL - zwei Ein-zu-Viele-Beziehungen.
Der Hauptunterschied besteht darin, dass Sie mehrwertige Felder haben. Anstelle eines dritten Dokuments/einer Tabelle, die einzelne Verbindungen als ein Paar von IDs aufzeichnet, haben Sie in jedem Dokument eine Liste von IDs.
Wenn Sie auf Fälle stoßen, in denen diese Liste zu lang wird, suchen Sie wahrscheinlich nach etwas, das besser durch die Suchindexierung als durch eine Beziehung behandelt werden könnte.
- 1. NoSQL-Normalisierungsdatenmodell
- 2. NoSQL Schema für Ordnerstruktur
- 3. NoSql Crash Kurs/Tutorial
- 4. NoSQL- oder Ehcache-Caching?
- 5. Denken NoSQL auf Referenzdaten
- 6. NoSql Option für MMORPGs
- 7. PHP-freundliche NoSQL-Lösungen
- 8. Clojure und NoSQL Datenbanken
- 9. NoSQL-Best Practices
- 10. NoSQL und räumliche Daten
- 11. DynamoDB vs MongoDB NoSQL
- 12. NoSQL mit analytischen Funktionen
- 13. Datenbanksicherheit in NoSQL-Umgebungen
- 14. Angular mit Nosql DB
- 15. NoSQL und meteorologische Daten
- 16. NoSql Battle - Überlebende?
- 17. NoSQL-Datenbank: ArangoDB
- 18. ManyToMany löscht nicht
- 19. Django ManyToMany Vorlage Fragen
- 20. Saving bidirektionale ManyToMany
- 21. django manytomany Validierung
- 22. ManyToMany Beziehung benutzerdefinierte Serializer
- 23. Frühling JPA holen ManyToMany
- 24. Feder Datenrest ManytoMany POST
- 25. django ManyToMany durch Hilfe
- 26. Django Admin ManyToMany Zwischenmodell
- 27. JPA ManyToMany unidirektionale Beziehung
- 28. Doctrine2 ManyToMany Selbstreferenzierung
- 29. Hibernate @ManyToMany löschen Relation
- 30. Django-Modell ManytoMany Getter
er über Dokumentation sprechen –
nein, das ist ein "Datenbankdokument". Eine "Dokumentendatenbank" ist etwas wie http://www.mongodb.org/ –