Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Welche Datenbank für hierarchische Galleriedaten? (https://www.delphipraxis.net/115149-welche-datenbank-fuer-hierarchische-galleriedaten.html)

Valle 6. Jun 2008 19:58

Datenbank: wüsst' ich auch gerne • Zugriff über: mit PHP

Welche Datenbank für hierarchische Galleriedaten?
 
Hi DPler, :hi:

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

mkinzler 6. Jun 2008 20:04

Re: Welche Datenbank für hierarchische Galleriedaten?
 
Zitat:

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.
Das ist aber die Lösung, welche ich auch vorschlagen würde.
Kann DBMS unterstützt dein Webspace? Die meisten werden wohl nur MySQL anbieten. Sonst wäre FireBird noch eine Option ( dank CTE)

Valle 6. Jun 2008 20:19

Re: Welche Datenbank für hierarchische Galleriedaten?
 
Zitat:

Zitat von mkinzler
Zitat:

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.
Das ist aber die Lösung, welche ich auch vorschlagen würde.
Kann DBMS unterstützt dein Webspace? Die meisten werden wohl nur MySQL anbieten. Sonst wäre FireBird noch eine Option ( dank CTE)

Ist mein Server, der hat MySQL 5. Ich will aber kein weiteres Datenbanksystem drauf machen, der ist so schon fast überlastet. Allerdings wie gesagt, diese Methode mit MySQL mag ich nicht so, denn ähnliches das habe ich schon zu oft gemacht, ich wäre für was neues. ;-)

Mit freundlichen Grüßen,

Valle

mkinzler 6. Jun 2008 20:28

Re: Welche Datenbank für hierarchische Galleriedaten?
 
Zitat:

Ich will aber kein weiteres Datenbanksystem drauf machen
Dann solltest du nicht danach fragen. :zwinker:
Zitat:

Allerdings wie gesagt, diese Methode mit MySQL mag ich nicht so,
So löst man aber dein Problem

Valle 6. Jun 2008 20:31

Re: Welche Datenbank für hierarchische Galleriedaten?
 
Zitat:

Zitat von mkinzler
Zitat:

Ich will aber kein weiteres Datenbanksystem drauf machen
Dann solltest du nicht danach fragen. :zwinker:

Es gibt genug Möglichkeiten ohne einen ständig laufenden Dienst. :zwinker:

Zitat:

Zitat von mkinzler
Zitat:

Allerdings wie gesagt, diese Methode mit MySQL mag ich nicht so,
So löst man aber dein Problem

Du hast nur die Hälfte zitiert, das ist etwas aus dem Zusammenhang gerissen. Es geht ja auch um meinen Spaß dabei und den habe ich bei der Methode bestimmt nicht. Und warum nicht mal was neues?

[ot]Hast du eigentlich mal auf einen Datenbanken-Thread nicht geantwortet? :lol: [/ot]

Mit freundlichen Grüßen,

Valle

mkinzler 6. Jun 2008 20:38

Re: Welche Datenbank für hierarchische Galleriedaten?
 
Du könntest es auch im Dateisystem machen. indem du dort Infos über die Bilder ablegst; entweder mit einem Index oder einer weiteren Datei pro Bild
Zitat:

[ot]Hast du eigentlich mal auf einen Datenbanken-Thread nicht geantwortet? Laughing [/ot]
Ja auf die meisten sogar

sx2008 7. Jun 2008 07:59

Re: Welche Datenbank für hierarchische Galleriedaten?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn du etwas Neues möchtest, dann könntest du mal über ein Multihierarchie System nachdenken.
Ähnlich wie bei Wikipedia teilst du deine Bilder in Kategorien ein.
Z.B. Menschen, Landschaften, Dinge, Tiere, Sonstiges
Jede Kategorie kann natürlich auch Unterkategorien haben. (Menschen -> Mann|Frau|Kind|Guppen)
Jetzt kommt aber eine weitere Kategorienebene hinzu, die von den bisherigen Kategorien unanhängig sind:
800*600, 1200*960, 2048*2048,....
Jetzt kommt dein Kumpel und will die Bilder bewerten; also gibt es neue Kategorien:
Note1, Note2,... Note6

Jedes Bilder kann in beliebig vielen Kategorien enthalten sein.
Man kann sich das so vorstellen, als ob viele Verzeichnissystem übereinandergelegt sind und
die Dateien in einem oder mehreren Verzeichnissystemen gleichzeitig enthalten sind. (*)
Dieses System lässt sich mit 3 Tabellen abbilden.

*) das wäre auch mal eine gute Idee für Windows oder Linux.
Es gibt das Standardverzeichnissystem wie bisher auch.
Zusätzlich kann der Benutzer aber eigene Verzeichnissysteme einrichten.
Tools, die auf der ganzen Platte verstreut sind, könnten in einem Verz. zusammengefasst werden.
Mit Hardlinks von NTFS könnte man das heute schon nachbilden, aber so richtig wird das vom OS nicht unterstützt.

Matze 7. Jun 2008 08:29

Re: Welche Datenbank für hierarchische Galleriedaten?
 
Das mit dieser Kategorie-Verschachtelung ist eine sehr interessante Sache. Ich habe das zum ersten Mal in meinem Wiki genutzt und elegant lösen kann man das mit Nested Sets (mein DP-Eintrag dazu). Selbst Millionen von Daten lassen sich sehr gut und performant verwalten.
Der Nachteil dabei ist, dass man manuell nichts in der DB ändern kann bzw. sollte, da es recht komplex ist. Wobei man dies nicht unbedingt als Nachteil ansehen muss.
Einfügen, ändern und löschen solltest du die Datensätze ausschließlich mittels SQL-Abfragen.

Ich war beeindruckt, als das ganze gelaufen ist und für dich wäre es sicher auch eine nette Erfahrung. Alleine die Theorie dahinter ist wirklich interessant. Einen ganz guten Link mit Erklärungen findest du im Verlinkten DP-Thema. :)

Um auf deine Frage zurück zu kommen: Das geht auch mit MySQL.

Grüße, Matze

alzaimar 7. Jun 2008 10:21

Re: Welche Datenbank für hierarchische Galleriedaten?
 
Sehr interessant. Wie sieht es denn mit der Performance aus, wenn viele Bilder eingefügt, verändert und gelöscht werden? So wie ich das sehe, müssen jedesmal im Mittel N/2 Datensätze verändert werden (LFT bzw RGT - Werte). Ich glaube, das diese Idee nur bei statischen Daten, die also selten verändert werden, wirklich Vorteile bringt, oder wie siehst Du das? Du hast ja praktische Erfahrungen damit.

Matze 7. Jun 2008 10:45

Re: Welche Datenbank für hierarchische Galleriedaten?
 
Zitat:

Zitat von alzaimar
Ich glaube, das diese Idee nur bei statischen Daten, die also selten verändert werden, wirklich Vorteile bringt, oder wie siehst Du das?

Da denke ich, dass du recht hast. Praktisch habe ich es mit dynamischen Daten nicht getestet. Doch die Kategorien der Bilder ändern sich nicht ständig, wenn ich das richtig verstanden habe. Dort wird ab und zu eine neue Kategorie angelegt und das war's dann oder irre ich mich?
Für die Zuordnung der Daten zu einer Kategorie nutze ich eine extra Tabelle, die die Daten-ID und die Kategorie-ID enthält. Dort wird dann öfters was verändert, wenn Daten hinzukommen oder entfernt werden.

Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz