komplexe suche

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

  • komplexe suche

    Hi,

    ich brauch mal einen Tip zur Gestaltung einer komplexen Suchanafrage.

    Hintergrund: Ich arbeite zurzeit an einem Raumkataster für eine Berufsschule, die die Suche nach Räumen mit bestimmter Ausstattung und Lehrmöglichkeiten bereitstellt. Ich möchte gerne nach nahezu allen Kriterien suchen könne. Software, IT-Ausstattung, Übungen, Materialien…

    Ich hatte folgenden Ansatz: Einen View erstellen der alle Tabellen zusammenjoint. Anschießend stelle ich meine Anfrage mit entsprechender Wherecondition an diesen View.

    Nur irgendwie bin ich damit nicht ganz glücklich und es kommt mir irgendwie unprofessionell vor.


    Ich habe ein ER-Diagramm von meinem Datenmodell angehängt

    Vielen Dank im Vorraus

  • #2
    hmm upload hat nicht hingehaun.. retry
    Angehängte Dateien

    Kommentar


    • #3
      Ich gebe da mal meinen unprofessionellen Senf dazu. Wenn du über mehrere Tabellen suchen willst musst du diese Joinen und das über eine View zu tun ist sicher eine sehr gute Idee, vor allem dann wenn du diese View also die Suche an mehreren Stellen durchführen möchtest. Trotzdem würde ich mir vorher aber ganz genau überlegen welche Kreterien wirklich wichtig sind und den Lehrern oder wer da auch immer mit suchen soll, nicht unnötige viele Möglichkeiten zur Auswahl geben.

      Ausserdem musst du beachten das die Suche über so viele Tabellen extrem langsam werden kann wenn die Datenmenge zu nimmt, auch deshalb wäre es nicht schlecht die Kreterien genau zu überdenken
      meine Seite mit vielen guten PHP Scripten :

      http://www.ilch.de

      Kommentar


      • #4
        Hallo zonthor
        Mit dem Layout wirst Du Probleme bekommen.

        Beispiel 1:
        Wieviele Geräte hat der Raum X?
        -> Join über 4 Tabellen, Anzahl in zig Spalten zusammenaddieren

        Beispiel 2:
        Es sollen später auch alle Bildschirme erfasst werden.
        -> DB-Layoutänderung (zusätzliche Spalte in eine Tabelle)
        -> IT-Fachkraft muss die Änderung vornehmen
        -> ALLE bestehenden Reports prüfen bzw. ändern


        Du solltest Dir Gedanken über eine vernünftige Typologie machen,
        d.h. Du solltest Kategorien statt Tabellen verwenden.
        Hier mal ein Beispiel:

        Kategorien:
        KatID / Typ / Kategorie
        1 / Hardware / Beamer
        2 / Hardware / Scanner
        3 / Hardware / Whiteboard
        4 / Hardware / Drucker
        5 / Person / IT-Lehrer
        6 / Software / HexEdit
        7 / Person / Schüler

        Raumausstattung:
        RaumID/Kategorie/Anzahl
        1 / 1 / 1
        1 / 4 / 2
        1 / 5 / 1
        1 / 7 / 10


        -> Der Raum 1 hat
        1 Beamer
        2 Drucker
        1 Lehrer
        10 Schüler

        Die Wirkung:

        Wieviele Geräte? Sum(Anzahl) [...] where RaumID=1 and Typ=Hardware
        Wieviele Lehrer? Sum(Anzahl) [...] where RaumID=1 and KatID=5
        Wieviele Personen? Sum(Anzahl) [...] where RaumID=1 and Typ=Person


        Neues Gerät nachträglich anlegen?
        -> Einfach Datensatz einfügen: Kategorie 8 / Hardware / Bildschirm. Keine DB-Änderung.
        -> Das kann (bei Programmunterstützung) ein "normaler" Anwender
        -> Keine Änderung vom Report: Sum(Anzahl) where RaumID=1 stimmt immer noch.

        Kommentar


        • #5
          Danke erstmal.

          @fuser: Der ansatz ist gefällt mir gut. Leider ist schon fast alles fertig Impletmentiert ( bis auf die Suche ) die habe ich nämlich immer schön vor mir hergeschoben.

          Die großen Probleme werden immer zum Schluss gelöst

          Ich denke ich werde eine art such_index Veiw schreiben, der mir alle relevanten Daten zusammenjoint. Muss die Schule halt mal nen ordentlichen Server histellen . Außerdem werden wohl nicht mehr als 10 User gleichzeitig Suchen.

          Gruß Basti

          Kommentar


          • #6
            Original geschrieben von zonthor
            hmm upload hat nicht hingehaun.. retry
            darf ich mal ganz ungeniert fragen, mit welchem Programm du das Modell gemacht hast? ^^

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

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

            Kommentar


            • #7
              Original geschrieben von ghostgambler
              darf ich mal ganz ungeniert fragen, mit welchem Programm du das Modell gemacht hast? ^^
              db-designer -> http://www.fabforce.net/
              Kissolino.com

              Kommentar


              • #8
                .. alias MySQL Workbench
                PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

                Kommentar

                Lädt...
                X