[MYSQL] Liste in Datenbank ?!

meisteryoda

Mitglied
Hallo Zusammen,

wie meine Frage schon sagt würde ich gerne eine Liste( aus einer PHP klasse) in einer MYSQL Datenbank ablegen. Das Problem jedoch ist, dass die Liste beliebig lang ist.

Gibt es eine Elegante möglicheit (ähnlich "nested Sets") für Listen, ohne diese serialisieren zu müssen ?

Schönen Dank schonmal, für eventuelle Antworten.
 
Hab mir selbst erst kürzlich die selbe Frage gestellt, und konnte vollgende antwort finden:

man macht eine liste mit folgenden kolonnen:

listItemID, listID, parent, ListItem

listItemID ist der Primary Key

listID ist einfach nur eine Zahl die alle Elemente welche in der gleichen Liste stehen identifiziert, dass is damit man auch mehrere Listen in der gleichen Tabelle haben kann, und mit einem Query alle Elemente einer Liste bekommt.

parent is einfach die listItemID des vorhergehenden ListItems

und ListItem, is eben was man so als Objekt in deiner Liste gepseichert hast... oder kann auch ein Foreign Key sein zu einer anderen Tabelle wo man seine seine Objekte gespeichert hat.

Nun ist es so, dass mann die Liste ganz einfach mit einem Query bekommen kann, sie aber gegebenen falls noch ordnen muss in PHP selbst (was kein großes Problem ist, weil man ja alle parents hat)

Wenn man nun aber direkt mit einem Query nur Teile einer Liste bekommen will, dann würde ich sagen dass man entweder noch eine listPosition dazu gibt, was einfach nur die Postition eines Items in der Liste angibt. Es is dann zwar leicht Teile der Liste mit nur einem Query zu bekommen, nur je nach länge der Liste, har man eine ganze Reihe an updates zu tun wenn man ein neues Element einfügt oder löscht. Wenn die Liste sich also häufig ändert würde ich empfehlen sie einfach in PHP zu ordnen und die teile in PHP weiter zu bearibeiten. Wenn die liste sich allerdings selten ändert kann man genau so gut die position einfügen und sich somit etwas PHP code ersparen.

Ich persönlich hab es lieber ohne positionsID weil man in PHP dann doch flexibler ist, as man nun machen will.
 
Zuletzt bearbeitet:
HM erstmal Danke, dass überhaupt irgendjemand geantwortet hat.
hatte mir sowas Ähnliches schon gedacht, allerdings würde ich die Lösung nicht als besonders schön bezeichnen, da man z.B. beim Umsortieren schon eine Menge ändern muss.

Aber für meine Anwendung wirds wohl reichen.

Ich bin natürlich dankbar für weitere Vorschläge.
 
Ja ist auch nicht besonders elegant, allerdings, wenn man in der Nested Sets Methode, auch bekannt als Modified Preorder Tree Traversal, muss man auch einige updates machen wenn man den Tree verändert. Die Art wie man es am besten speicher hängt eben davon ab wie man es benutzen will...
 
Zurück