2017-12-15 15 views
2

Wie validieren Sie Diagrammdaten (Scheitelpunkte und Kanten) wie in OrientDB? Zum Beispiel Wenn mein Graph Ecken hat/Kanten von FormatModell Schema für Scheitelpunkte und Kanten

{ 
    "name": :any_name, 
    "age" : 13 
} 

Wie kann ich verbinden sie mit einem gut definierten Schema (mit Validierungen)?

In OrientDB gibt es auch Funktionen zum Speichern von Daten in Scheitelpunkten und Kanten, und jedes der Schemas ist gut definiert. Wie kann ich das in arangoDB machen?

Antwort

2

"Out-of-the-box" ArangoDB unterstützt keine Schemaerzwingung. Dies ist eindeutig ein bedeutender Nachteil in einigen Anwendungsfällen.

jedoch Max Neunhöffer von ArangoDB argumentiert, dass mit einem wenig Arbeit kann man den Standard-Datenbank-API ausschalten, ein ArangoDB-basiertes System zu verlassen, das Schema erzwingt:

Daher kann ArangoDB dann sein wurde zu einer strengen schemadeerzwingenden Persistenz-Engine, da seine HTTP-API um Benutzercode erweitert werden kann, der in JavaScript geschrieben ist und auf dem Datenbankserver mit direktem Zugriff auf die Daten ausgeführt wird. Man kann die Art und Weise, wie der Datenspeicher vom Client-Code benutzt wird, schrittweise weiterentwickeln und langsam auf spezielle, benutzerdefinierte Routen verschieben, die das stabile Datenbankschema, insbesondere für die Schreiboperationen, erzwingen. Als Konsequenz kann viel Client-Code vereinfacht werden, da man sich plötzlich auf ein strenges Schema verlassen kann, das von der API erzwungen wird, sobald alle Schreiboperationen abgedeckt sind.

Am Ende, wenn man die gesamte API für die App angepasst hat, kann man sogar die Standarddatenbank-API ausschalten, was die Sicherheit und Sauberkeit weiter erhöht. Mit diesem letzten Schritt ist man zu einer Software-Architektur gelangt, die datenzentrische Microservices anwendungsspezifisch direkt im Datenbankserver implementiert, was gut gegen Bugs ist, die Performance verbessert (komplexe Abfragen können in der Nähe der Daten ausgeführt werden), gut für die Einfachheit des Anwendungsdesigns und gut für Wartbarkeit. Selbst die Entwickler mögen das, denn die Microservices können unabhängig voneinander bereitgestellt und aktualisiert werden.

https://www.arangodb.com/2015/03/agile-development-vs-schema-enforcement

Verwandte Themen