[Funktion] Datensätze sortieren

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

  • [Funktion] Datensätze sortieren

    Hallo,

    dieses Problem betrifft indirekt PHP, ich hoffe dennoch das ihr mir weiterhelft, denn dies ist eine Problematik die jeder mal hatte (denke ich mir so).

    Ich habe eine Tabelle (Auto) mit Fahrzeugdaten. User können Datensätze anlegen und beliebige Atrribute auswählen. Diese Autrribute werden aus eine anderen Tabelle (Listen) ausgelesen und in Form von Select Felder zur verfügung gestellt.

    Wird jetzt ein neuer Datensatz in Auto angelegt so werden die Attribute die der User ausgeählt hat im Klartext in die Felder geschrieben und nicht etwa die ID des Eintrage von der Listen Tabelle.

    Das ist natürlich nicht so schön weil es ja diese Normalform Regeln gibt. Ich habe dies gemacht, damit ich die Datensätze der Auto Tabelle nach bestimmten Kriterien sortieren lassen kann (z.B. Hubraum, PS, Gewicht, usw.)

    Würde in der Auto Tabelle statt den Klartext Attributen die ID's der Atrributwerte der Listentabelle stehen könnte ich die Tabelle nicht mehr sortieren.

    Wie macht man das in so einem Falle? Ich habe das Gefühlt, dass es ganz einfach ist, aber ich könnte im Forum nicht das Problem finden.

    Mit SQL Joins müsste das machbar sein, aber diese wollte ich nach Möglichkeit nicht benutzen. Geht das auch anders mit PHP?

    Danke fürs Lesen
    http://www.karting-zone.de

  • #2
    Ich sehe dein Problem nicht.
    Du hast in den Attributen, nach denen du sortieren willst, nur Werte aus der Tabelle Listen. Dann sortiere doch einfach.

    Oder willst du unbedingt korrekt und vollständig normalisierte Relationen? Dann brauchst du entweder eine Zuordnung Listen-Wert -> ID, die die Sortierreihenfolge erhält oder du joinst.

    Was spricht denn bitte gegen JOIN?

    Kommentar


    • #3
      warum solltest du dann nicht mehr sortieren können?

      Naja, das stimmt in soweit, als dass du keine joins verwenden willst.

      Trotzdem würde ich dir empfehlen, mit vernünftiger Normalisierung und joins zu arbeiten.

      Gibt schliesslich gute Gründe, wieso es Normalisierung gibt.
      (vermeidung von Redundanz, Datenkonsistenz, etc. )

      Oder willst du dir die DB unnötig aufpumpen?
      Performance-Mässig bringt dir das im endeffekt dann auch nichts mehr.

      Kommentar


      • #4
        hallo zusammen,

        ich finde joins unübersichtlich und sie liegen mir ehrlich gesagt auch nicht so sehr. Dachte das es eventuell auch anders geht.

        Schöner ist es natürlich die Datenbank zu normalisieren und dann in solchen Fällen mit Joins zu arbeiten.

        Dann werde ich das mal machen.

        Danke für euere Antworten.

        mfg

        Delle
        http://www.karting-zone.de

        Kommentar


        • #5
          hmm... Joins sind irgendwie Brot und Butter für DB-Entwickler...

          Kommentar


          • #6
            mag ja sein, aber dafür sind sie resourcenfressender, als wenn man z.B. 2 separate sql abfragen macht OHNE joins.

            hätte ich auch nicht gedacht, ist aber so.
            http://www.karting-zone.de

            Kommentar


            • #7
              Bei MySQL mag das so sein. Die großen Datenbanksysteme gestatten Optimierung (Clustering). Dabei wird der JOIN quasi vorab ausgeführt und die fertig gejointen Tupel auf die Platte geschrieben.
              Effekt: JOIN = 1 sequential read von x Blöcken; 2 Queries = 2 reads von x Blöcken.

              Kommentar


              • #8
                aha, ok.

                ihr habt mich überzeugt, dann werde ich mir mal schnell vernünftiges DB Design und vernünftige DB Abfragen lernen

                mfg

                delle
                http://www.karting-zone.de

                Kommentar

                Lädt...
                X