Ich bin neu in CouchDB
und die NoSQL
Szene und kommt aus einem SQL
Hintergrund. Ich habe einige Fragen auf referentielle Integrität, zum Beispiel Ich habe ein Produkt Dokument wie untenCouchDB Referentielle Integrität
{
type: "product"
name: "Sweet Necklace"
category: "necklace"
}
Und jeder Kategorie haben ein eigenes Dokument
{
type: "category",
name: "necklace",
custom_attr: ".."
}
Nur um des Arguments, was passiert, wenn die Stakeholder wählte die Kategorie von "Halskette" in "Zubehör" umbenennen, was sollte auf den Produkten geschehen, die das Kategoriefeld als "Halskette" haben? Mache ich ein Massenupdate für alle Produkte mit Kategorie gleich Halskette? (Ich glaube nicht, CouchDB
ermöglicht es uns, eine "UPDATE ALL WHERE" Anweisung)
Was ist die beste Praxis für die Behandlung einer solchen Situation?
P/S: Ich wählte den Kategorienamen in dem Produkt Dokument anstelle einer Kategorie-ID zu speichern, da NoSQL
Denormalisierung ermutigt sowieso.
Folgen Sie Ihrem Beispiel, wann immer ich den Kategorienamen des Produkts brauche, muss ich noch die Kategorie-Sammlung abfragen, nicht wahr? Ich dachte, dass dies einen der Ziele von NoSQL übertrifft, nämlich die Vermeidung von Joins. –
Nein, Sie müssen keine weitere Anfrage ausführen. Ich habe die Antwort mit einem Beispiel aktualisiert. – Kul