N:M Beziehung

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

  • N:M Beziehung

    Hallo,

    ich arbeite zur Zeit an einem kleinen CMS System für unsere Einsatzleitung, im Prinzip werden dort Mitarbeiter, Bezirke & Arbeiten ("Aufträge & Störungen") Mitarbeitern zugeordnet.

    Ich habe 3 Tabellen:

    Mitarbeiter:
    - id int(2) auto_increment
    - name varchar(25)
    - status varchar(15)

    Bezirke:
    - id int(2) auto_increment
    - name varchar(25)

    Arbeiten:
    - id int(5) auto_increment
    - auftrag varchar(20) / NULL
    - stoerung varchar(13) / NULL / Aufbau der Stö.Nr.: 20080304-XXXX
    - bezirke_id int(2)
    - mitarbeiter_id int(3)

    Ich bin gerade dabei das Script Störung hinzufügen zu schreiben und ich denke das ich dafür eine N:M Beziehung benötige da ich grundsätzlich einem oder zwei Mitarbeitern eine Störung zuordnen möchte.

    Wie kann ich dies bewerkstelligen, finde leider kaum Infos über MySQL & PHP5 M:N Beziehungen. Zumindest keine nützlichen.

    Habe zur Zeit eine Auswahlliste erstellt die Automatisch aus der Datenbank (Bezirke) geladen wird, die ID wird per Formular bereits übergeben desweiteren habe ich ein Textfeld erstellt welches 13 Zeichen lang ist, auch dies wird ordentlich übergeben. Zur Zeit habe ich ein einfaches INSERT:

    PHP-Code:
    $sql "INSERT INTO Arbeiten
      (stoerung, bezirke_id, mitarbeiter_id) VALUES (?, ?, ?)"

    Es wäre toll wenn mir jemand helfen könnte.

    Ich würde ja am liebsten 2 Auswahllisten haben wo man 2 verschiedene Mitarbeiter Auswählen kann und dann das Formular absendet.
    Zuletzt geändert von Tr3bi; 04.03.2008, 09:14.

  • #2
    Na du nimmst eine Brückentabelle in der Du die Störungs_ID und eine MA_ID ablegst
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Original geschrieben von MelloPie
      Na du nimmst eine Brückentabelle in der Du die Störungs_ID und eine MA_ID ablegst
      Aha also füge ich eine Tabelle: Mastoe hinzu mit den Feldern stoerungs_id varchar(13) & mitarbeiter_id int(2)?
      So ganz weiss ich nicht, wie ich dann den INSERT dazu machen soll?
      PHP-Code:
      $sql "INSERT INTO Arbeiten
        (stoerung, bezirke_id, mitarbeiter_id) VALUES (?, ?, ?)"
      ;
      $sql "INSERT INTO Mastoe
        (mitarbeiter_id, stoerung_id) VALUES (?, ?)"

      Kann ich das so einfach hintereinder schreiben? Ich glaube ja nicht dran :]
      Aber im Prinzip liege ich doch richtig, oder?
      Zuletzt geändert von Tr3bi; 04.03.2008, 09:38.

      Kommentar


      • #4
        Ich würde eine Tabelle ma2stoerung machen
        ma_id int
        arbeit_id int
        zur Auflösung der m:n BEziehung.
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Okay habe ich gemacht und wie kann ich das jetzt PHP Technisch bewerkstelligen, dass ich den 2 ma_ids den Datenfeldern zuordne?
          Den 2 Auswahllisten die ich erzeugen möchte, muss ja noch einen Namen geben sagen wir: ma_id1 & ma_id2 die ich ja irgendwie per INSERT einbinden muss, oder?

          Kommentar


          • #6
            na zB über ein multiselcet in Verbindung mit einem array...
            dann haste ein select mit der stoerungs_id und ein array mit allen ids der MA.
            Das ganze dann in ein INSERT statement und es ist gespeichert
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              Da sehe ich ja auch nicht sooo das Problem drin, doch habe ich Probleme mit dem INSERT Statement, ich habe ich folgenden Aufbau:

              Tabelle: ma2stoerung
              ma_id | stoe_id

              Beispiel:
              51 | 20080304-1234
              52 | 20080304-1234
              56 | 20080304-0089

              Das INSERT Statement muss ich doch dann irgendwie so einbinden das ich 2 gleiche Datensätze in ma2stoerung habe einmal die ma_id 51 & die ma_id51 Beispielsweise.

              Ich weiss nicht wie ich das in die Datenbank geschrieben bekomme. *schnief*

              Kommentar

              Lädt...
              X