Vertretung eines DAG (directed acyclic graph)
Brauche ich zum speichern von Abhängigkeiten in einer DAG. (Wir sind die Zuordnung eines neuen Lehrplans auf einer sehr feinkörnigen Ebene)
Sind wir mit Schienen 3
Überlegungen
- Breiter als Sie tief ist
- Sehr groß
- Schätze ich 5-10 links pro Knoten. Wie das system wächst dadurch erhöht.
- Viele liest, wenig schreibt
- häufigsten sind lookups:
- Abhängigkeiten des ersten und zweiten Grades
- suchen/überprüfen von Abhängigkeiten
Ich weiß, SQL, werde ich überlegen, NoSQL.
Suchen für Hinweise auf gute Vergleiche von Möglichkeiten der Umsetzung.
Interessiert auch, was wir beginnen können, mit schnellen, aber weniger schmerzhaft, um den übergang zu etwas mehr robust/skalierbare später.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, dass die kommende version (beta im moment) der Ruby-Bindungen für die graph-Datenbank Neo4j sollte eine gute Passform. Es ist für den Einsatz mit Rails 3. Die zugrunde liegenden Daten-Modell verwendet Knoten und gerichteten Beziehungen/Kanten mit Schlüssel/Wert-style-Attribute auf beiden. Um die Skala zu Lesen-meist Architekturen Neo4j verwendet eine master/slave-Replikation setup.
Fand ich das Beispiel der Modellierung eines gerichteten azyklischen Graphen in SQL:
http://www.codeproject.com/KB/database/Modeling_DAGs_on_SQL_DBs.aspx?msg=3051183
Könnten Sie OrientDB als graph-Datenbank. Es ist hoch optimiert für Beziehungen da sind als link hinterlegt und nicht MITMACHEN. Laden von bidirektionalen Graphen mit 1000 vertices braucht nur wenige Millisekunden.
Sprache verbindlich für die Schienen ist noch nicht verfügbar, aber Sie können verwenden Sie es mit HTTP-RESTful-Aufrufe.
Möchten Sie vielleicht einen Blick auf die act_as_dag gem.
https://github.com/resgraph/acts-as-dag
Auch einige gute schreiben auf Dags mit SQL für die Menschen, die Sie eventuell benötigen Sie einige Hintergrundinformationen.
http://www.codeproject.com/Articles/22824/A-Model-to-Represent-Directed-Acyclic-Graphs-DAG-o