Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Master-/Detail wie am Besten

  Alt 8. Jan 2014, 18:47
Das ist auch keine Master-Detail-Beziehung sondern eine N:M-Beziehung.
Ein Benutzer kann Mitglied in mehren Gruppen sein.
Eine Gruppe kann mehrere Benutzer haben.
Dies wird durch die 3. Tabelle "Benutzer2Gruppe" abgebildet.

Wenn du ein Formular hast in dem die Benutzer angelegt und editiert werden,
dann könnte man dort für den aktuell selektierten User eine Liste der Gruppen anzeigen
in denen der User Mitglied ist.
Allerdings wäre diese Liste read-only; man kann sie nicht direkt editieren.

SQL-Code:
SELECT BenutzerGruppen.Name FROM
BenutzerGruppen INNER JOIN Benutzer2Gruppe ON BenutzerGruppen.ID=Benutzer2Gruppe.BENUTZERGRUPPEN_ID
WHERE Benutzer2Gruppe.BENUTZER_ID = :IdUser
Es gibt dann 2 Buttons "zu Gruppe hinzufügen" und "aus Gruppe entfernen".
Beim Hinzufügen wird ein SQL INSERT ausgeführt und beim Entfernen ein DELETE.

Genau das Gleiche kann man in dem Formular machen in dem die BenutzerGruppen editiert werden.

Du wirst um SQL-Kenntnisse nicht drumrumkommen.
Die Tabelle Benutzer2Gruppe braucht übrigens nur 2 Felder; das Autoinc-Feld kannst du löschen und im Gegenzug den Primärschlüssel auf die beiden verbleibenden Felder legen.
fork me on Github
  Mit Zitat antworten Zitat