Rechtesystem

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

  • Rechtesystem

    Ich programmiere gerade ein Rechtesystem, das auf Unix-Basis funktioniert, d.h. eine Benutzer - Gruppen - Rechte Struktur aufweist.

    Meine Frage ist nun, wie gehe ich am geschicktesten vor, wenn ich die Rechte einer Gruppe ändere, sprich Rechte hinzufüge oder wegnehme. Macht es mehr Sinn, die alten Rechte der Gruppe komplett wegzunehmen (löschen) und die aktualisierten Rechte wieder hinzuzufügen oder soll ich die Unterschiede zwischen den alten und neuen Rechten ermitteln und dann die Rechtezuweisung aktualisieren?

    Erstere Variante, erst alles löschen und dann neu schreiben, ist für mich einfacher, aber erfordert evt. mehr Datenbankzugriffe und ist nicht so "schick". Zweitere ist komplexer zu ermitteln (Addition und Subtraktion von REchten) aber in meinen Augen "eleganter".

    Mit welcher Methode aktualisiert ihr die Rechte, die euren Gruppen zugeordnet sind?

  • #2
    Re: Rechtesystem

    Original geschrieben von frabron
    Macht es mehr Sinn, die alten Rechte der Gruppe komplett wegzunehmen (löschen) und die aktualisierten Rechte wieder hinzuzufügen
    ich würde es so machen, eben weil es wesentlich einfacher ist und eventuell sogar für die Datenbank auch schneller ist... (sofern ich dein System richtig verstanden hab )

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Wenn hier keine weiteren Einwände kommen, wähle ich also den Dunklen Pfad der Macht

      Kommentar


      • #4
        was heisst dunkler pfad...

        wenn man zb in textdateien etwas ändert muss man diese auch erst einlesen, die entsprechenden dinge ändern und die datei neu schreiben...

        von daher finde ich nicht das das irgendwie nicht elegant wäre, zumal es sicherlich auch schneller ist.

        Kommentar


        • #5
          Naja, eleganter fände ich schon, die Schnittmenge aus alten und neuen Rechten zu bilden und diese dann in die Datenbank zu schreiben. Und den Vergleich mit Textdateien will ich so nicht stehenlassen, denn ich arbeite mit einer Datenbank, und da muss man nicht alles auslesen sondern kann selektiv vorgehen. Ich weiß halt nur nicht wie

          Schneller ist die alles rausnehmen und neu reinschreiben für mich schon vom Programmieraufwand her. Von der Performance her kann ich aber nichts dazu sagen, denn ich weiß ja nicht, wie das Update der Rechte in der DB geschieht. Deshalb mache ich da keine Aussage.

          Weil dies der einfache Weg ist, ist er der Dunke Pfad, denn einfach ist nicht zwangsläufig besser

          Kommentar


          • #6
            dazu müsste man wissen wie du deine rechte speicherst, wenn Sie alle in einem string stehen musst du den ja sowieso neuschreiben.

            ich würde eine tabelle für gruppen machen wo bei jeder gruppe eine spalte rights existiert wo die rechte drinstehen, und jedem benutzer weise ich halt eine gruppenid zu...
            wenn man nun die rechte updatet muss man diese doch sowieso auslesen, ändern und neuschreiben oder sieht das system bei dir ganz anders aus ?

            Kommentar


            • #7
              selektiv ist nicht unbedingt schneller als sequentiell

              Und ich würde sagen, die DB ist mit dem Löschen/Schreiben einer DB schneller sequentiell als selektiv (zumindest bei ein paar Rechten...wenn darin irgendwelche riesigen Blob-Felder wären, sähe das anders aus XD~)

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Ja. Ich habe eine Tabelle für Benutzer, eine Tabelle für Gruppen und eine Tabelle für Rechte. Benutzer - Gruppen und Gruppen - Rechte sind durch eine m:n Relation miteinander verbunden, sprich jeweils eine weitere Tabelle. Und um diese Tabelle ging es letztendlich, da dort die Verknüpfung hergestellt wird.

                Nachtrag zu Ghostgambler: Ich habs jetzt auch sequentiell gelöst. Manchmal geht bei mir nur der perfektionist durch
                Zuletzt geändert von frabron; 13.09.2005, 18:13.

                Kommentar

                Lädt...
                X