Rouven: MySQL - Gruppenzuteilung

Beitrag lesen

Hallo,

wie Ilja schon sagte, deine Tabellenstruktur wäre sehr hilfreich. Wenn meine Vermutung richtig ist, dann versuchst du gerade so etwas:

| de_user_to_group |
--------------------------------------------------
| userid | groupid | Name | ...
--------------------------------------------------
| 1      | 1       | Alex | ...
| 2      | 1       | Blex | ...
--------------------------------------------------

Und du willst jetzt, dass der Nutzer 1 in beiden Gruppen steht, richtig? Wenn nicht, kannst du hier aufhören zu lesen ;-)

Wenn doch:
Das geht auf die extrem-schlecht-aber-schnell-Variante, indem du den Datensatz mit der User-ID 1 einfach nochmal einträgst, bei vernünftigem Design hast du dann aber ein Problem mit dem Primärschlüssel User-ID und du hättest auch Probleme beim Auslesen, weil ja die Abfrage "gib mir userid=1" mehr als einen Datensatz bringen würde. Also wie gesagt, das könnte gehen, davon ist aber extremst abzuraten.
Die saubere Variante geht über eine zweite Tabelle.

In Tabelle 1 speichern wir alles, was am Primärschlüssel userid hängt:

| de_user_to_group |
--------------------------------------------------
| userid | Name | ...
--------------------------------------------------
| 1      | Alex | ...
| 2      | Blex | ...
--------------------------------------------------

In Tabelle 2 speichern wir uns Informationen über seine Gruppenzugehörigkeit:

| groups |
--------------------------------------------------
| userid | groupid | ...
--------------------------------------------------
| 1      | 1       | ...
| 1      | 2       | ...
| 2      | 1       | ...
--------------------------------------------------

Allerdings hab ich auch irgendwie Zweifel daran, dass dieser Vorschlag dein Problem löst (Stichwort Kristallkugel). Der Tabellenname de_user_to_group legt nahe, das die Tabelle die du da hast eigentlich schon alles in der Richtung machen soll...

MfG
Rouven

--
-------------------
ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(