Hallo

ich wollte mal aufhöhren mit dem ganzen SQL-Wahnsinn und eine Nicht- relationale Datenbank ausprobieren. Meine Wahl wäre da TokyoCabinet (http://tokyocabinet.sourceforge.net), man könnte aber auch CouchDB oder so nehmen glaube ich.

Als Startpunkt möchte ich eine Fotoalbum-Anwendung bauen. Es gibt also Fotos und Alben. Ob jedes Foto genau einem oder mehreren/keinem Album zugewiesen werden kann ist erstmal egal.

Jetzt die Frage:
Wie speichert man die Foto - Album  Beziehungen?

Folgendes fällt mir dazu ein

1. Jedes Album wird als solches gespeichert
Ich speichere eine komplette Album-Instanz in der Datenbank, gemarshaled, komplett mit dem .fotos Array
                album.fotos     # => [Foto, Foto, Foto, Foto]
                store[key] = Marshal.dumb(album)

2. Ich speichere nur Foto Objekte und sortiere sie nach Album-Namen
Wenn ich ein Album umbennen möchte, ratter ich durch alle jeweiligen Fotos und ändere den Album-Namen.
                store[key] = { foto: mein_foto, album_name: ""}
                

Was denkt ihr?
Habt ihr schonmal was mit so welchen Datenbanken gemacht? (Key/Value.. wie nennt man das?)
Wie sind eure Erfahrungen damit?

Ich finde den Ansatz von Dokument-orientierten Datenbanken eigentlich gut - Speicher.. das da! Anstatt speicher.. hier und da und da und da was. Aber es ist trotzdem nicht einfach zu verstehen.


Ein paar links zum Thema
http://tokyocabinet.sourceforge.net/index.html
http://blag.ahax.de/post/90023607/exploring-tokyo-cabinet
http://github.com/wycats/moneta

Gruß,
Andreas
_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/listinfo/rubyonrails-ug

Antwort per Email an