Logik : Elemente zählen

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

  • Logik : Elemente zählen

    Ich habe ja nun in letzter Zeit hier oft über Kategorien gepostet, nun bin ich an einem Scheideweg angelangt.

    Ich hab eine DB, welche
    Kategorien und ihre Position beinhaltet, dazu hab ich in dieser Tabelle auch für jede Kategorie eine Spalte mit der Anzahl der Einträge in der Kategorie.
    Wenn ich also so eine Struktur habe, steht mitbei, wievele Elemente drin sind, (damit sind nicht die Unterkategorien gemeint, sondern Einträge in Kategorien), hier nur die Ansicht der Kategorien
    Code:
    Food (2)
      Fruits (1)
         Green (0)
      Meat (0)
          Pork (0)
    Dh ich habe insgesammt zwei Einträge in Food, eins also in Food selber und eins in der Unterkategorie Fruits, z.B so:

    Code:
    Food (2)
    -Fisch-
      Fruits (1)
      -Apfel-
         Green (0)
      Meat (0)
          Pork (0)

    Die ist doch die bessere Variante, oder irre ich mich? Die Alternative dazu würde daraus bestehen, dass man für jede Kategorie und Unterkategorie die Anzahl der Einträge zählen müsste

    Problem bei der obrigen Methode, beim verschieben der Einträge müsste man jedes einzelne Element wieder aufrufen, deren ID holen und dann in der DB wo die Kategorien stehen die Zählvariablen runtercounten, verschiebe ich nun -Fisch- und -Apfel- nach Pork, müsst ich ein Update bei Fruits (-1), Update bei Meat(+2) und bei Pork (+2) machen.

    Das ist n wenig zu viel, oder?
    Ist da die andere Methode emfehlenswerter? Also dass die Anzahl der Elemente jedesmal berechnet wird?
    Zuletzt geändert von Seikilos; 04.07.2005, 17:47.
    SQL Injection kitteh is...

  • #2
    Re: Logik : Elemente zählen

    Original geschrieben von Seikilos
    Scheide weg
    OffTopic:
    arme frau ...

    (und ihr mann jetzt vermutlich auch.)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Bin mir nicht sicher ob ich verstanden habe was du meinst, aber :

      in dieser Tabelle auch für jede Kategorie eine Spalte mit der Anzahl der Einträge
      das scheinen Merkmale gleicher Ausprägung zu sein und sollten dahe normalisiert werden,


      erschiebe ich nun -Fisch- und -Apfel- nach Pork, müsst ich ein Update bei Fruits (-1), Update bei Meat(+2) und bei Pork (+2) machen.
      Wenn die Rechnung so gemacht wird, ist ein Fehler drinn (wo wird Fisch abgezogen)

      Wenn damit eine Hierarchische Struktur aufgebaut werden soll, ist vielleicht mal eine Nested Set Klasse (ich weiss nicht mehr welcher Der Mods hier aber einer hat im Tutorial Bereich eine recht gute eingestellt -> einfach mal suchen)

      Ansonsten ist zu überlegen ob die Summierung der Subentries notwendig ist oder evtl per SQL gelöst werden kann (zB durch Subqueries ab 4.1)
      chansel0049
      ----------------------------------------------------
      if you've reached the bottomline - dig further!
      Übersetzer gesucht? http://www.babelport.com

      Kommentar


      • #4
        Bin < 4.1

        Die Tabellen wurden zubeginn gesplitten um die Performance nicht zu belasten, wenn ich in der Nested Set Tabelle die Daten sammele, dann ist das ja durchaus Arbeit für eine DB, wenn die Tabelle aber durch 6-7 weitere Spalten unnötig schwer ist, verlangsamt das, zwar erst aber erheblich mehr Einträgen, aber immerhin.

        Ich will keine Nested Set klasse nehmen, weil ich 1. die von Pear angeguckt habe und reingarnichts verstanden habe und 2. im Grunde die Lösung selber finden will
        SQL Injection kitteh is...

        Kommentar


        • #5
          wenn ich in der Nested Set Tabelle die Daten sammele, dann ist das ja durchaus Arbeit für eine DB, wenn die Tabelle aber durch 6-7 weitere Spalten unnötig schwer ist, verlangsamt das, zwar erst aber erheblich mehr Einträgen, aber immerhin.
          Die Arbeit für die DB ist bei gutformuliertem SQL nicht der Rede wert (Dafür ist es ja ein RDBMS) bei NESTED SET ist zwar die einfügung 'schwerwiegender' an DB Belastung aber dafür das Auslesen deutlich schneller.

          Die Spalten sollten dennoch normalisiert werden, schon allein der Logik wegen, aber auch aus Gründen der Performance.

          Du braucst kein PEAR um NESTED SET Klassen zu nehmen, eines der Forum Tutorials hat eine echt gute nicht PEAR gebundene, meines Wissens..

          Letzlich ist dein Ansatz, selbst Lösungen finden zu wollen sehr löblich, jedoch spricht dies nicht gegen die Verwendung bereitsbestehender OS/Lizenzfreier Teillösungen die gut-sehr gut gemacht sind -- Schliesslich beginnst Du auch nicht bei einem Compiler für PHP oder versuchst dein Betreibssystem neu zu erfinden...
          chansel0049
          ----------------------------------------------------
          if you've reached the bottomline - dig further!
          Übersetzer gesucht? http://www.babelport.com

          Kommentar


          • #6
            Das nicht, ich verwende auch die Nested Sets nicht, ich hab zubeginn versucht die zuverstehen, aber ohne Ansatzpunkte hats nicht geklappt
            SQL Injection kitteh is...

            Kommentar


            • #7
              nun...

              ohne Fleiss keine Preisselbeeren
              chansel0049
              ----------------------------------------------------
              if you've reached the bottomline - dig further!
              Übersetzer gesucht? http://www.babelport.com

              Kommentar

              Lädt...
              X