2012-04-06 3 views
0

Was ich zu entwerfen beabsichtige, läuft im Grunde auf eine Liste von Benutzern, Organisationen, Ereignissen, Adressen und Kommentaren hinaus, die ganz einfach in einem RDBMS wie MySQL gepflegt werden könnten. Wenn das Projekt jedoch startet, möchte ich einen weiteren Aspekt hinzufügen, bei dem es sich um Ressourcen handelt - d. H. Dateien, Videos, Bilder usw., die entweder zu einem Benutzer, einer Organisation oder einem Ereignis gehören können. Dies wirft sofort die Frage auf, ob ein RDBMS verwendet werden soll und ein Verweis auf eine externe Datei über eine Tabelle für jede der zuvor genannten Kategorien gespeichert werden soll oder ob ein Doc/Obj ODBMS wie MongoDB zum Speichern dieser Elemente verwendet werden soll.Wie entscheiden Sie, ob Sie ein RDBMS, Doc/Obj ODBMS oder Graph verwenden?

Aber ich möchte auch Benutzer, Organisationen und Ereignisse verknüpfen können. h. Benutzer A besitzt Org 1 und Org 2. Benutzer B besitzt Org 3 und Org 4. Benutzer C besitzt Org 5. Org 1 hat ein Ereignis X, das bei Addr M am Datum R gehalten wird, welches Org 3 ebenfalls sein wird. Benutzer C möchte an Ereignis X teilnehmen. Org 2 hat auch ein Ereignis Y bei Addr M, aber bei Datum T. usw. usw. Als solches würde ich vermuten, dass ein Graph DBMS wie OrientDB die beste Lösung wäre. Entweder das, oder ich hätte viele Tabellen in einem RDBMS mit vielen Joins und möglicherweise vielen Abfragen oder einer sehr seltsamen Struktur in einem Doc/Obj DBMS.

Ich habe mir InfoGrid angeschaut, was eine Graph-Datenbank ist, die sich mit MySQL verbinden kann, was ein möglicher Weg sein könnte, diese Katze zu häuten. Hat sonst noch jemand so etwas versucht? Was halten Sie davon, ein solches System zu implementieren, das skalierbar sein muss? Vorschläge werden sehr geschätzt.

Antwort

1

Ihre Beschreibung eignet sich für ein relationales Modell. RDBMS für dieses spezielle Setup ist der richtige Weg.

Verwandte Themen