Member/Gruppenverwaltung

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

  • Member/Gruppenverwaltung

    Hallo erstmal,

    ich bin dabei ein eigenes cms zu schreiben und da hänge ich jetzt.
    Ich habe mir eine Tabelle für User mit deren Daten angeleget sowie eine Tabelle mit den Gruppendaten.

    nun zu meiner Überlegung ich wollte einer Gruppe zum einen User einzeln zu ordnen können und zum anderen auch Gruppen. Das Problem dabei ist das die zugeordneten Gruppen ja wieder Gruppen enthalten können und so weiter. Um diese Gruppen zu editieren, wollte ich daher alle freien User und freien Gruppen getrennt von den bereits vergebenen anzeigen lassen. Damit man einfacher hinzufügen und löschen kann.

    Hab zur Rekursion einiges gefunden, aber nix dazu wie ich diese Problem lösen könnte.

    Ich speicher in der Gruppentabelle folgendens ab:

    Spalte user : einen String mit den Userids der Form "1,2,3"
    Spalte group: einen String mit den Gruppenids der Form "1,2,3"

    Wie kann ich das mit Rekursion lösen ich komme damit nicht klar?!
    Hatte die Idee aus dem String ein Array zu machen und darauf dann die gleiche funktion also rekursiv aufzurufen... nur woher weiß die funktion dann wenn aus der ersten gruppe die 1 z.bsp. mit allen untergruppen abgearbeitet ist.

    Ich würde mich über Hilfe oder ein Beispiel freuen.

  • #2
    Moin,

    Deine DB Struktur ist, gelinde gesagt, für den hohlen Zahn.
    Ich denke das Stichwort heißt Normalform.

    Gruß Thomas

    Kommentar


    • #3
      Ohh, ich glaube das ist mein Ding.

      Alrik hat recht. Du musst mehr über Datenbankenmodelierung nachlesen, gibt's massenhaft infos. Einfach im google suchen.

      Aber um dir eine Idee zu vermitteln:

      Erstmal brauchsts du eine Tabelle mit Gruppen und noch eine zweite mit Usern.

      Ist ja doch klar. Dann überlegst Du dir in welcher Beziehung die beiden zu einander stehen 1:1, 1:n oder n:m.

      So wie ich es erkenne ist es n:m
      Also du benötigt eine 3-te Tabelle und zwar Gruppe_has_user.
      In diese Tabelle speicherst Du dann nur die id's von Gruppe und die id's von User
      z.B.
      ----------------------------
      gruppe_id | user_id
      ----------------------------

      und dann die id's

      1 | 1
      1 | 2
      1 | 3
      2 | 4

      etc.

      Du must unbedigt bei diese Tabelle dann einen gesetzten primary key aus den beiden id's setzen, sonst könnte bei vielen Datensetzen die DB lansam werden.

      Zu dem Problem das eine Gruppe kann zu einer anderen Gruppe gehören. Ganz einfach, wenn es eine 1:n Beziehung ist kannst Du die Gruppen_id als foreign key in der Gruppen-Tabelle setzen. Wenn es aber wieder eine n:m Beziehung ist musst Du wieder eine zusätzliche Beziehungstabelle Bauen.

      Ich weiß, es ist auf den ersten Blick kompliziert aber es macht tierisch Spaß, wenn man einmal rausbekommen hat.
      Bei einer richtig modellierten Datenbank macht auch Rekursion auch Spaß. Dazu schau mal hier rein: http://www.phun-x.com/index.php?pid=9&lang=de
      Xdevel

      Kommentar


      • #4
        Danke erstmal ich werde mir das gleich durchlesen und dann versuchen umzusetzen!!

        Kommentar

        Lädt...
        X