Naps: Komplexe Datenfilterung

Hi,

ich habe eine MySQL Abfrage die sehr komplex ist. Ca 20 Bedingung werden in 6 Tabellen überprüft.

Mein Problem ist, dass es jedes mal eine Katastrophe ist die Abfrage anzupassen wenn sich Bedingungen ändern oder neue dazu kommen.

Würdet ihr so etwas mit getrennten abfragen erledigen? Vielleicht die "Rohdaten" in einem Array speichern und dann einfach die verschiedenen "Filter" darauf anwenden?

MfG Naps

  1. Hello,

    ich habe eine MySQL Abfrage die sehr komplex ist. Ca 20 Bedingung werden in 6 Tabellen überprüft.

    Mein Problem ist, dass es jedes mal eine Katastrophe ist die Abfrage anzupassen wenn sich Bedingungen ändern oder neue dazu kommen.

    Ist denn das Baumuster der Abfrage jedes Mal ein anderes, oder sind es nur die Werte?

    Die Werte anzupassen und ggf. mal aufgrund der Werte eine Bedingung hinzuzufügen oder wegzulassen, das sollte doch mit einer einfachen Funktion möglich sein.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bikers-lodge.com
    1. Ist denn das Baumuster der Abfrage jedes Mal ein anderes, oder sind es nur die Werte?

      Ja "leider". Also nur dann, wenn die Applikation weiterentwickelt wird.

      Bei vielen anderen Abfragen ist es kein Problem, die werden halt einfach angepasst / geändert.

      Mir geht es eigentlich auch darum, ob es bessere Wege gibt, also eine ewig lange SQL abfrage.

      MfG Naps

      1. Hello,

        na, dann würde ich Basic nehmen.

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bikers-lodge.com
      2. Mir geht es eigentlich auch darum, ob es bessere Wege gibt, also eine ewig lange SQL abfrage.

        Kommt darauf an, wie Dein Code an die DB gebunden ist. Bei einer losen Kopplung ist die Datenhaltung abstrahiert, d.h., Du arbeitest nur mit dem Code und darin definierten Datenstrukturen, was eine Filterung unter Umständen einfacher macht.

        Einfaches Beispiel:
        my $wanted = $self->{DBF}->wanted(qw(title descr, class));

        filtert die Daten in eine Hash-Referenz, wo nur die Attribute {title, descr, class} enthält (für alle in der Projektverwaltung konfigurierten URLs).

        my $foo = $wanted->{"/foo.html"} liefert dann die Attribute für einen speziellen URL.