Ich komme aus einem RDBMS-Hintergrund, und ich habe hier eine Anwendung, die eine gute Skalierbarkeit und geringe Latenz erfordert. Ich möchte CouchDB ausprobieren. Ich muss jedoch erkennen, wenn eine bestimmte INSERT-Operation aufgrund einer eindeutigen Schlüsseleinschränkung fehlschlägt. Unterstützt CouchDB dies? Ich habe mir die Dokumente angesehen, aber ich konnte nichts Relevantes finden.Unterstützt CouchDB eine Schlüsseleinschränkung?
Antwort
Die _id für jedes Dokument ist eindeutig (innerhalb derselben Datenbank), aber für andere Felder im Dokument gibt es keine Einschränkungen.
Insbesondere gibt es keine Einschränkungen, die auf zwei oder mehr Dokumente angewendet werden.
Sie können validation documents einrichten, um Validierungsregeln für Dokumente einzurichten, aber sie sind wiederum dokumentenbasiert.
Wie das obige Poster sagt, gibt es keine Einschränkungen für andere Felder als das Dokument _id. Die _id kann automatisch von couchdb generiert werden oder Sie können Ihre eigenen erstellen. (Für meine Zwecke habe ich mein eigenes erstellt, da ich wusste, dass ich die Einzigartigkeit des Schlüssels garantieren konnte). Wenn Sie auf der niedrigsten API-Ebene eine PUT-Anforderung einer vorhandenen Dokument-ID versuchen, wird sie mit einem HTTP 409-Fehler zurückgewiesen - es sei denn, Sie geben die richtige Revision (_rev-Eigenschaft) des vorhandenen Dokuments ein.
Ich würde mit Couchdb nichts Missionskritisches laufen lassen, aber der Code ist aus Apache-Inkubation und recht funktional. Eine Reihe von Menschen betreiben Websites damit.
- 1. Unterstützt SymmetricDS CouchDB?
- 2. MySQL: Foriegn-Schlüsseleinschränkung kann nicht hinzugefügt werden
- 3. CouchDB Java-Client
- 4. CouchDB-weite schreibgeschützte Zugriffsrechte
- 5. Multiple CouchDB Dokument holen mit couchdb-python
- 6. Couchdb Konfliktlösung
- 7. Assert einzigartige Schlüsseleinschränkung für h2 Datenbank mit Slick und scalatest
- 8. URL-basierte API-Schlüsseleinschränkung: Wie funktioniert die Validierung?
- 9. CouchDB in iOS/Xcode?
- 10. Selektive Replikation mit CouchDB
- 11. CouchDB repliziert keine Entwurfsdokumente
- 12. CouchDB Finnische/schwedische Sortieransicht
- 13. Wolke zu CouchDB
- 14. Autoinkrement in couchdb
- 15. CouchDB - Abfragen mit params
- 16. Bereichstasten in CouchDB Ansichten
- 17. Serverside - nur CouchDB
- 18. Couchdb 100% CPU-Auslastung
- 19. Mehrbereichstasten in couchdb Ansichten
- 20. CouchDB Ansichten Fehler
- 21. UUIDs in CouchDB
- 22. CouchDB in Produktion
- 23. Like-Bedingung in CouchDB
- 24. CouchDB _change Feed
- 25. CouchDB: Filterfunktionen in Ansichten
- 26. CouchDB für ein Forum?
- 27. ähnliche Objekte in CouchDB
- 28. urllib2 Ausnahmebehandlung mit couchdb
- 29. CouchDb automatische Zeitstempel
- 30. Scalaris vs CouchDB
Sie sind sich der Tatsache bewusst, dass selbst das Projekt selbst angibt, dass es nicht für die Produktion bereit ist und dass es signifikante Änderungen geben kann? http://wiki.apache.org/couchdb/Frequently_asked_questions#is_couchdread_ready_for_production – jitter
Ja, wenn ich online nachschaue, habe ich das gesehen, aber ich bin bereit, diesen Weg zu gehen, weil ich nicht das gesamte System darauf baue, aber nur eine bestimmte Komponente, die diese Art von Skalierbarkeit benötigt. – thomas55