Kategoriesystem, wie ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kategoriesystem, wie ?

    Moin Leute,

    ich brauch mal ein paar Tips für eine sinnvolle Herangehensweise für ein Projekt.

    Was ich machen möchte ist im Prinzip folgendes:

    Ich möchte, dass der Benutzer Kategorien, mit beliebig vielen Unterkategorien erstellen kann. Dabei soll jede Unterkategorie sowohl Einträge, alsauch weitere Unterkategorien enthalten können.

    Mir stellt sich nun die Frage, wie man das am besten in der MySQL-Datenbank ablegt, welche Kategorie zu welcher gehört.

    Ich habe mir überlegt einfach bei jeder Kategorie/jedem Eintrag den "Parent" zu speichern, also die darüberliegende Kategorie, die Oberkategorie sozusagen.

    Wenn ich nun aber den Pfad mit anzeigen möchte, also den Weg in welcher Kategorie man sich gerade befindet ( z.B. Games -> WoW -> Raids -> blablabla ), dann müsste ich ja für jeden höherliegenden Schritt immer die ganze Tabelle absuchen nach dem Parent der Kategorie, in der man sich gerade befindet, bis man ganz oben ankommt, wo es keine höher liegende mehr gibt.

    Weiterhin soll man auch Einträge in eine andere Liste kopieren können. Wenn nun jemand von einer Oberkategorie alle darin liegenden Einträge/Kategorien in seine eiggene Liste kopieren möchte, dann muss man das ganze Spiel von oben nach unten durchackern, was sich noch komplizierter gestaltet, da es von oben nach unten ja mehrere Wege gibt.

    Ich möchte nun natürlich kein fertiges Script haben, sondern nur ein paar Tips von den Profis, wie man grundsätzlich an sowas herangeht, denn mein bisheriger Ansatz einfach nur den Parent immer zu speichern scheint mir doch beim Auslesen recht kompliziert, aber mir ist auch nichts besseres eignefallen.

    Danke schonmals im Voraus.

    Greetz,
    nohfreak
    Mein aktuelles Projekt: Hausaufgaben Datenbank für kostenlose Hausaufgaben

  • #2
    Guck dir mal Nested Sets an.

    Kommentar


    • #3
      Ah, sehr cool, ich danke dir, das sieht auf den ersten Blick ziemlich genau nach dem aus was ich suche. Ich werd mir das mal detaillierter ansehen, sobald ich Zeit habe und euch hier gegebenenfalls mit weiteren Fragen löchern. Sieht aber ziemlich gut erklärt aus, also hoffen wir für alle Beteiligten, dass keine Fragen mehr kommen!

      Danke dir!
      Mein aktuelles Projekt: Hausaufgaben Datenbank für kostenlose Hausaufgaben

      Kommentar


      • #4
        Danke dir!
        Kein Problem

        Kommentar


        • #5
          Ich möchte noch darauf hinweisen, dass du das System so aufbauen solltest, das jeder User seinen eigenen Baum hat und nicht alles unter der selben Wurzel passiert, da ein Nested Set bei einfügen und löschen von Werten extrem schlecht skaliert.

          Kommentar


          • #6
            Hallo,

            ich würde die Frage gerne etwas erweitern: ich möchte nur die Unterkategorien anzeigen, in denen auch Einträge enthalten sind.

            Um beim Beispiel Games -> WoW -> Raids -> blablabla zu bleiben:

            blablabla enthält einen Eintrag, daher wird WoW und Raids auch angezeigt. Zudem enthält WoW einen Eintrag. Wenn blablabla jetzt keinen Eintrag enthalten würde, würden Raids und blablabla nicht angezeigt.

            Gibts da eine clevere Erweiterung für NestedSets oder muss ich da was ganz anderes nehmen?

            VIELEN DANK!

            Kommentar


            • #7
              So pauschal würde ich sagen, dass das eigentlich ziemlich einfach zu regeln ist. Erst schnappst du dir alle IDs der Knoten, prüfst dann ob Einträge mit diesen IDs vorhanden sind, ermittelst das höchste lvl mit Eintrag und zeigst den Baum dann nur bis dahin an.
              Mein aktuelles Projekt: Hausaufgaben Datenbank für kostenlose Hausaufgaben

              Kommentar


              • #8
                Ok, danke schon mal! Und ne Ein-Query-Lösung gibts nicht ?

                Kommentar


                • #9
                  Tja, keine Ahnung. Ich hab noch nich mit der Klasse angefangen. Gibts bestimmt auch alles schon fertig irgendwo, aber ich steh irgendwie auf selber schreiben.
                  Mein aktuelles Projekt: Hausaufgaben Datenbank für kostenlose Hausaufgaben

                  Kommentar


                  • #10
                    Ja ich auch! Für nestedSets gibts ja Tutorials und da kann man sich auch mit einem Query nen Teilbaum o.ä. auslesen. Also ich mein ein mySQL-Query. Wenn ich da ne eigene Klasse für brauch bau ich mir die

                    Kommentar

                    Lädt...
                    X