Hi DPler,
ich habe mir einige Zeit lang den Kopf über diese Frage zerbrochen, deswegen dachte ich, ich frage einfach mal in meinem Lieblingsforum (Das "mit der Datenbank") nach.
Ich programmiere momentan eine Galerie mit PHP, in welcher jeder User seine Bilder hochladen kann und auch in eigenen Ordnern verwalten kann. Jetzt suche ich eine Möglichkeit, mit der ich am besten schnell und einfach diese Daten verwalten kann. Was ich brauche ist eigentlich recht einleuchtend, aber ich erläutere das trotzdem mal.
- Bilder (Elemente) und Ordner (Übergeordnete Elemente) erstellen
- Elemente löschen, natürlich auch rekursiv
- Elemente verschieben, auch ganze Ordner in andere Ordner
- dafür eine einfache und vor allem schnelle Speichermöglichkeit
Ich hatte dafür bisher schon einige Ideen, die so ihre Vor- und Nachteile haben. Ich liste die hier am besten mal auf; das sind dann die, die ich in die nähere Auswahl setze, allerdings bin ich auf offen für ganz andere Vorschläge.
Dateisystem als Datenbank
Das ist eigentlich das einfachste von allen, scheint mir in diesem Fall aber nicht sinnvoll, da die Bilder alle woanders abgespeichert sind und somit nicht in den Ordnern der Galerie selbst. Ich könnte zwar für jedes Bild eine Datei mit Informationen oder einen Link anlegen, aber irgendwie halte ich das für keine gute Lösung.
MySQL mit einer Spalte 'parent' mit der ID des Elternelements
Ist auch nicht so der Kracher, da sich das ganze so nicht mehr ganz so einfach verwalten lässt. Besonders das rekursive verschieben ist da - denke ich - nicht besonders einfach. Außerdem (und das ist der Hauptgrund gegen diese Möglichkeit) will ich mal etwas anderes ausprobieren, denn diese Technik hatte ich woanders schon einmal. Schließlich programmiere ich zu meinem Vergnügen, da darf man da ja auch berücksichtigen?
XML-Daten, als Datei oder in MySQL
XML ist normal immer das erste, was mir bei hierarchischen Daten so einfällt. Allerdings arbeite ich nicht so gerne mit
XML.
XML ist auch für die Arbeit unter einem Webserver nicht sooo geeignet, da es doch relativ viel Arbeits- und auch Festplattenspeicher verbraucht. Was die Möglichkeiten von verschieben von Elementen usw. angeht habe ich ehrlich gesagt noch keine Erfahrung.
Ok, soviel von meiner Seite aus. Ich würde mich freuen, wenn ihr mir ein paar Tipps geben könntet, was sich denn als Datenbank dafür anbietet. Und wie gesagt, ich programmiere hauptsächlich für meinen Spaß, sodass ich auch eine ausgefallenere Methode in Betracht ziehen würde.
Mit freundlichen Grüßen,
Valle