Brauche einen Tipp

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

  • Brauche einen Tipp

    Hallo!

    Ich habe in meiner Tabelle 'Projekte' ein Feld Mitarbeiter. Dort sind in einem String und durch Kommas getrennt alle Mitarbeiter gespeichert.

    Ich möchte nun eine Übersicht erstellen, die einem eingeloggten Teilnehmer alle seine Projekte, an denen er beteiligt ist, anzeigt.

    Wie ist es am geschicktesten zu lösen?

    Meine Idee:
    Man lässt sich alle Datensätze geben und kontrolliert bei jedem Datensatz, ob der Mitarbeiter in dem String des Feldes Mitarbeiter vorhanden ist. Wenn ja speichert man die Projektdaten in ein temporäres Array, welches später dann durchlaufen wird und alle Projekte auflistet.


    Geht das auch einfacher?

  • #2
    Hallo LazyLow,

    ich denke es wäre besser und eindeutiger, mit 3 Tabellen zu arbeiten:

    Mitarbeiter | Projekte | Projektbeteiligung

    Letztere beiinhaltet eigentlich nur IDs, so dass bei einer Auswahl
    eindeutige Zuordnungen getroffen werden. Mit einer "Like %...%"-Abfrage
    ist das bei Namen schnell fehlerträchtig.

    Vielleicht hilfts ja

    wurzel
    Kissolino.com

    Kommentar


    • #3
      Such einfach alle Datensätze, in denen der Name bzw. die ID des Mitarbeiters vorkommt:

      "select * from Projekte where Mitarbeiter regexp '(^|,)[[:blank:]]*$name[[:blank:]]*(,|$)'"

      Wichtig: [:blank:] beinhaltet nur Tab und Leerzeichen, aber keine Zeilenumbrüche!


      und bei der Drei-Tabellenlösung bekommst du das Ergebnis so:

      select p.* from Projekte p, Projektbeteiligung b
      where p.projekt_id=b.projekt_id and b.mitarbeiter_id=$mitarb_id

      Sieht nicht nur einfacher aus als das Ding oben, ist auch noch um einiges schneller.
      mein Sport: mein Frühstück: meine Arbeit:

      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

      Kommentar

      Lädt...
      X