verschachtelte datenbank?

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

  • verschachtelte datenbank?

    hallo!

    ich habe eine mysql-datenbank, welche wie folgt ausschaut:

    --------------------------
    | id | oberid | name |
    --------------------------
    | 1 | 0 | Start |
    | 2 | 1 | Test 1 |
    | 3 | 1 | test 2 |
    | 4 | 2 | ebene |
    | 5 | 2 | ebene |
    | 6 | 5 |ebene |
    --------------------------

    also, ich lasse es immer rekursiv aufrufen, die darstellung erfolgt so:
    1. start
    1.2. test 1
    1.3. test 2
    2.4. ebene
    2.5. ebene
    5.6. ebene

    und dort läuft es jetzt so, dass id 6, über 3 eben läuft, weil:
    id 6 ==> 5 ==> 2 ==> 1 - das heißt also, dass die oberste kategorie id1 ist.

    nun muss ich folgendes wissen:
    in welcher ebene der entsprechende datensatz ist, und welches die haupt-id (in diesem beispiel id 1, kann aber auch z.b. bei id x anfangen), ist. es sollen amximal 11 ebenen gehen, aber halt wie gesagt, immer bei einer bestimmten id anfangen.

    geht das über mysql zu realisieren? zum beispiel mit befehlen wie JOIN, ON oder ähnliches? weil php brauch da doch sehr lange zum verarbeiten, wenn mehreren tausend datensätze vorhanden sind.

    ich hoffe ihr könnt mir irgendwie helfen, wäre für jede hilfe dankbar!
    Zuletzt geändert von Deathrow; 29.11.2006, 08:33.
    Mit freundlichem Gruß,
    Deathrow

  • #2
    Re: verschachtelte datenbank?

    Original geschrieben von Deathrow

    geht das über mysql zu realisieren? zum beispiel mit befehlen wie JOIN, ON oder ähnliches? weil php brauch da doch sehr lange zum verarbeiten, wenn mehreren tausend datensätze vorhanden sind.

    ich hoffe ihr könnt mir irgendwie helfen, wäre für jede hilfe dankbar!
    mit MySQL schon, aber da darfst du dich nochmals Gedanken über die DB-Struktur machen. id->parentid ist für wenige Ebene und Datensätze geeignet, da rekursiver Lesevorgang sehr resource intensiv ist und man läuft da bei gefahr, einen stack overflow zu erzeugen, wenn der Speicher nicht ausreichend ist. Für einige Tausend Datensätze würde ich sagen, dass du z.B. nested sets in Betracht ziehen sollst

    Kommentar


    • #3
      ja da habe ich bereits auch schon dran gedacht, aber das problem ist, ist kann die datenbank-strucktur nicht verändern. bei mir selbst zwar schon, aber nich bei allen anderen, welche mein script mit dem dummen aufbau besitzen, welchen ich "ganz früher" mal gemacht habe wo ich nicht dachte dass es so groß wird.
      Mit freundlichem Gruß,
      Deathrow

      Kommentar


      • #4
        Original geschrieben von Deathrow
        ja da habe ich bereits auch schon dran gedacht, aber das problem ist, ist kann die datenbank-strucktur nicht verändern. bei mir selbst zwar schon, aber nich bei allen anderen, welche mein script mit dem dummen aufbau besitzen, welchen ich "ganz früher" mal gemacht habe wo ich nicht dachte dass es so groß wird.
        Update-Skript?!

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          www.mysqldiff.org/ ein hoch auf goth
          Sunshine CMS
          BannerAdManagement
          Borlabs - because we make IT easier
          Formulargenerator [color=red]Neu![/color]
          Herkunftsstatistik [color=red]Neu![/color]

          Kommentar


          • #6
            Ja ja ... update kommt bald ...
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              Will ich hoffen, sonst komm ich bald
              Sunshine CMS
              BannerAdManagement
              Borlabs - because we make IT easier
              Formulargenerator [color=red]Neu![/color]
              Herkunftsstatistik [color=red]Neu![/color]

              Kommentar

              Lädt...
              X