Heim  >  Artikel  >  Backend-Entwicklung  >  [php] Design einer universellen Rechteverwaltungsdatenbank

[php] Design einer universellen Rechteverwaltungsdatenbank

WBOY
WBOYOriginal
2016-08-08 09:26:112729Durchsuche

Berechtigungen im B/S-System sind wichtiger als die im C/S-System. Da das C/S-System über einen speziellen Client verfügt, kann die Erkennung von Zugriffsberechtigungen über den Client oder implementiert werden Es wird durch Client- und Servererkennung implementiert. Wenn keine vollständige Berechtigungserkennung eingerichtet ist, kann ein „illegaler Benutzer“ wahrscheinlich problemlos über den Browser zugreifen im B/S-System. Daher müssen B/S-Geschäftssysteme über ein oder mehrere Berechtigungssysteme verfügen, um die Erkennung von Zugriffsberechtigungen zu implementieren, sodass autorisierte Benutzer autorisierte Funktionen normal und legal nutzen können, während diese nicht autorisierten „illegalen Benutzer“ vollständig „ausgeschlossen“ werden. Werfen wir einen Blick darauf, wie man ein Berechtigungssystem entwirft , das die Benutzerfunktionsberechtigungskontrolle in den meisten B/S-Systemen erfüllen kann.

Anforderungserklärung

  • Personal mit unterschiedlichen Verantwortlichkeiten, z Die Berechtigungen für Systemoperationen sollten unterschiedlich sein. Ausgezeichnetes Geschäftssystem, dies ist die grundlegendste Funktion.
  • Berechtigungen können „Gruppen“ zugewiesen werden . Für das Geschäftssystem eines großen Unternehmens ist es zeitaufwändig und unpraktisch, von Administratoren zu verlangen, dass sie ihren Mitarbeitern nacheinander Systembetriebsberechtigungen zuweisen. Daher schlägt das System das Konzept vor, mit „Gruppen“ zu arbeiten, Personen mit denselben Berechtigungen in derselben Gruppe zusammenzufassen und dann der Gruppe Berechtigungen zuzuweisen.
  • Berechtigungsverwaltungssysteme sollten erweiterbar sein . Es sollte zu jedem System mit Berechtigungsverwaltungsfunktionen hinzugefügt werden können. Genau wie Komponenten können sie kontinuierlich wiederverwendet werden, anstatt den Berechtigungsverwaltungsteil jedes Mal neu zu entwickeln, wenn ein Verwaltungssystem entwickelt wird.
  • Erfüllen Sie die funktionalen Berechtigungen im Geschäftssystem. In herkömmlichen Geschäftssystemen gibt es zwei Arten der Berechtigungsverwaltung: Die eine ist die Verwaltung von Funktionsberechtigungen und die andere ist die Verwaltung von Ressourcenberechtigungen. Funktionsberechtigungen können zwischen verschiedenen Systemen wiederverwendet werden, während Ressourcenberechtigungen nicht vorhanden sind.

    Über Design

    Mit Hilfe des Action-Programming-Konzepts von NoahWeb müssen sich Systemdesigner während der Designphase nicht mit dem Design der Programmstruktur befassen, sondern beginnen mit dem Programmablauf und der Datenbank-Struktur. Um die Anforderungen zu realisieren, ist das Design der Datenbank äußerst wichtig. Ob es sich um das Konzept des „Gruppenbetriebs“ oder die Wiederverwendbarkeit des gesamten Berechtigungsverwaltungssystems handelt, alles liegt im Design von Datenbank.

    Lass uns zuerst die Datenbankstruktur analysieren:

    Zuerst die Aktionstabelle (Im Folgenden als „Berechtigungstabelle“ bezeichnet), Gorupmanager-Tabelle (im Folgenden als „Verwaltungsgruppentabelle“ bezeichnet) und Master-Tabelle (im Folgenden als „Personaltabelle“ bezeichnet) ) sind drei Entitätstabellen, in denen nacheinander „Behörden“-Informationen, „Verwaltungsgruppen“-Informationen und „Personal“-Informationen aufgezeichnet werden. Wie unten gezeigt:

    [php] Design einer universellen Rechteverwaltungsdatenbank

    Die Beziehung zwischen diesen drei Tabellen Es ist viele-zu-viele Eine Berechtigung kann gleichzeitig zu mehreren Verwaltungsgruppen gehören, und eine Verwaltungsgruppe kann auch mehrere Berechtigungen gleichzeitig enthalten. Ebenso kann eine Person mehreren Verwaltungsgruppen gleichzeitig angehören, und eine Verwaltungsgruppe kann auch mehrere Personen gleichzeitig umfassen. Wie unten gezeigt:

    [php] Design einer universellen Rechteverwaltungsdatenbank

    Weil es Unterschiede zwischen diesen drei gibt Tabellen Es besteht eine Viele-zu-Viele-Beziehung, sodass die Interaktion zwischen ihnen am besten mithilfe von zwei anderen Tabellen vervollständigt wird. Diese beiden Tabellen spielen eine Zuordnungsrolle, nämlich die „Aktionsgruppen“-Tabelle (im Folgenden als „Berechtigungszuordnungstabelle“ bezeichnet) und die „Mastergroup“-Tabelle (im Folgenden als „Personalzuordnungstabelle“ bezeichnet). ) , ersteres bildet die Interaktion zwischen der Berechtigungstabelle und der Verwaltungsgruppentabelle ab. Letzterer bildet die Interaktion zwischen der Personaltabelle und der Führungsgruppentabelle ab. Wie unten gezeigt:

    [php] Design einer universellen Rechteverwaltungsdatenbank

    Zusätzlich wird eine Tabelle benötigt . Steuern Sie die Berechtigungsspalte im linken Menü, wenn das System ausgeführt wird. Dies ist die „Berechtigungsspaltentabelle“, wie unten gezeigt:

    [php] Design einer universellen Rechteverwaltungsdatenbank

    Basierend auf der obigen Analyse entwerfen wir die Datenbankstruktur, wie unten gezeigt:

    Klicken Sie hier um die Daten des Berechtigungsverwaltungssystems anzuzeigen. Tabellenfelddesign

    [php] Design einer universellen Rechteverwaltungsdatenbank

    Um eine gute Analyse durchzuführen, teilen wir das Datenbankstrukturdiagramm auf. Die Funktionen der drei Entitätstabellen sind nun sehr klar.

    Eine Berechtigungszuordnungstabelle wie unten gezeigt:

    Schauen wir uns zunächst die Feldzuordnungen zwischen Berechtigungszuordnungstabelle, Verwaltungsgruppentabelle und Berechtigungstabelle an.

    [php] Design einer universellen Rechteverwaltungsdatenbank

    Schauen Sie sich den roten Kreis im Bild an, erster Blick Bei der Gorupid-Feldkorrelation ist die Leistung dieser Korrelationsmethode in der tatsächlichen Datenbank wie folgt:

    [php] Design einer universellen Rechteverwaltungsdatenbank

    Wie in der Abbildung gezeigt, ist die Gruppen-ID von „Superadministrator“ in der Verwaltungsgruppentabelle 1, dann sind die Berechtigungen mit Gruppen-ID 1 in der Berechtigungszuordnungstabelle sind auch „ Die Berechtigungen, die „Superadministrator“ besitzt.

    Mit der Feldzuordnung „groupid“ können Sie herausfinden, welche Berechtigungen eine Verwaltungsgruppe ausführen kann. Die detaillierten Informationen dieser Berechtigungen werden jedoch von der Aktionsfeldzuordnung abgefragt.

    Das damit verbundene Aktionsfeld in der Datenbank verhält sich wie folgt:

    [php] Design einer universellen Rechteverwaltungsdatenbank

    Durch diese Zuordnung können die detaillierten Informationen dieser Berechtigungen in der Berechtigungszuordnungstabelle abgefragt werden . Zusammengenommen wissen wir, welche Berechtigungen eine administrative Gruppe ausführen kann und wie die Details dieser Berechtigungen lauten.

    Vielleicht fragen Sie sich: Warum nicht das Actionid-Feld zum Verknüpfen verwenden? Denn:

    • Das ID-Feld in der Berechtigungstabelle kann sich nach mehreren Datenbankoperationen ändern.
    • Die Berechtigungszuordnungstabelle zeichnet nur die Berechtigungen auf, die eine Verwaltungsgruppe ausführen kann.
    • Sobald sich die ID in der Berechtigungstabelle ändert, ändert sich auch der Datensatz in der Berechtigungszuordnungstabelle.
    • Die Berechtigungen, die eine administrative Gruppe ausführen kann, gehen zwangsläufig schief, was höchst unerwünscht ist.

      In Anbetracht der obigen Situation sollte das Aktionsfeld zum Zuordnen verwendet werden, weil:

      • In der Berechtigungstabelle kann sich die ID ändern, aber das Aktionsfeld kann sich unter keinen Umständen ändern.
      • Das in der Berechtigungszuordnungstabelle aufgezeichnete Aktionsfeld ändert sich nicht.
      • Die Berechtigungen, die eine administrative Gruppe ausführen kann, gehen nicht schief.

        Zwei-Personen-Zuordnungstabelle ist wie folgt:

        Werfen wir einen Blick auf die Personenzuordnungstabelle und die Verwaltungsgruppentabelle und

        Die Feldzuordnung zwischen Personaltabellen ist wie folgt unten gezeigt:

        [php] Design einer universellen Rechteverwaltungsdatenbank

        Sehen Sie sich das Bild an. Schauen Sie sich für den Teil mit dem roten Kreis zunächst die Gruppen-ID-Feldzuordnung an. Die Leistung dieser Zuordnung in der Datenbank ist wie folgt:

        [php] Design einer universellen Rechteverwaltungsdatenbank

        Wie in der Abbildung gezeigt, ist die Gruppen-ID der Gruppe „Superadministrator“ 1. Schauen wir uns die Personalzuordnung an Tabelle. Admin gehört zur Superadministratorgruppe und Administrator gehört zur Superadministratorgruppe.

        Mit dieser Korrelationsmethode können Sie herausfinden, wer einer Führungsgruppe angehört. Wie oben werden die detaillierten Informationen des Personals durch Verknüpfung mit dem ID-Feld (dem Masterid-Feld in der Personenzuordnungstabelle ) abgefragt. Das

        ID-Feld (das Masterid-Feld in der Personenzuordnungstabelle ) wird in der Datenbank im Formular angezeigt der folgenden Abbildung:

        [php] Design einer universellen Rechteverwaltungsdatenbank

        Eine Person kann gleichzeitig mehreren „Managementgruppen“ angehören, wie in das Bild, Administrator Es gehört gleichzeitig zu zwei „Verwaltungsgruppen“. Daher gibt es in der Personalzuordnungstabelle zwei Datensätze zum Administrator.

        Mit dieser Korrelationsmethode können die detaillierten Informationen der Personen in der Verwaltungsgruppe abgefragt werden. Zusammengenommen können wir wissen, wer zu einer Managementgruppe gehört und welche detaillierten Informationen diese Person hat.

        kombiniert mit der oben erwähnten Berechtigungstabelle und Berechtigungszuordnungstabelle, Das „ Die Operation „Gruppe“ in der Anforderung wird wie unten gezeigt implementiert:

        [php] Design einer universellen Rechteverwaltungsdatenbank

        Tatsächlich zeichnet die Verwaltungsgruppentabelle nur die grundlegenden Informationen der Gruppe auf, wie z. B. Name, Gruppen-ID usw. Die detaillierten Informationen zu den Personen in einer Gruppe sowie die detaillierten Informationen zu den Berechtigungen, die die Gruppe ausführen kann, werden in der Personaltabelle und der Berechtigungstabelle aufgezeichnet. Die beiden Mapping-Tabellen erfassen wirklich, wer in einer Gruppe ist und welche Berechtigungen sie ausführen können. Durch die Verbindung der beiden Zuordnungstabellen kann die Interaktion zwischen den drei Entitätstabellen realisiert werden und damit die in der Anforderung erwähnte „Gruppen“-Operation abgeschlossen werden .

        Werfen wir einen Blick auf den Unterschied zwischen der Berechtigungsspaltentabelle und der Berechtigungstabelle Interaktion. Die Feldbeziehungen zwischen diesen beiden Tabellen sind wie folgt:

        [php] Design einer universellen Rechteverwaltungsdatenbank

        Die beiden Tabellen sind über das Feld actioncolumnid miteinander verknüpft. Die Leistung dieser Zuordnung in der Datenbank ist wie folgt:

        [php] Design einer universellen Rechteverwaltungsdatenbank

        Wie in der Abbildung gezeigt, können wir durch diese Korrelationsmethode sehr deutlich erkennen, zu welcher Spalte die Berechtigungen in der Berechtigungstabelle gehören.

        Jetzt ist die Datenbankstruktur sehr klar und die Funktion zum Zuweisen von Berechtigungen und „Gruppen“-Vorgängen wurde implementiert. Als Nächstes analysieren wir die in den Anforderungen an das Berechtigungsverwaltungssystem erwähnten Wiederverwendbarkeitsprobleme.

        Warum kann ein mit dieser Datenbankentwurfsmethode erstelltes System wiederverwendet werden?

        • Die drei Entitätstabellen erfassen die drei entscheidenden Elemente im System. „Berechtigungen“, „Gruppen“ und „Personen“. Diese drei Elemente können nach Belieben hinzugefügt werden, ohne sich gegenseitig zu beeinflussen. Egal um welche Art von Geschäftssystem es sich handelt, diese drei entscheidenden Elemente werden sich nicht ändern, was bedeutet, dass sich die Struktur nicht ändert, sondern nur die Daten.
        • Die beiden Zuordnungstabellen zeichnen die Beziehung zwischen drei Elementen auf. Aber diese Beziehungen werden völlig künstlich hergestellt. Wenn Änderungen vorgenommen werden müssen, werden nur die Datensätze in der Datenbank bearbeitet, ohne die Struktur zu ändern.
        • In der Berechtigungsspaltentabelle werden die Spalten aufgezeichnet, die bei Verwendung des Systems angezeigt werden. Unabhängig davon, ob Sie Spalten hinzufügen, ändern oder reduzieren möchten, handelt es sich lediglich um einen Vorgangsdatensatz.

          Zusammenfassend lässt sich sagen, dass das System durch die Gestaltung der Datenbank auf diese Weise vollständig wiederverwendbar und widerstandsfähig ist Test „Ändern“.

          Zusammenfassung:

          Der Kernpunkt dieses Systems Das heißt, die drei Entitätstabellen erfassen fest die Kernkomponenten des Systems und die beiden Zuordnungstabellen bilden die Interaktionen zwischen den drei Entitätstabellen perfekt ab. Die Schwierigkeit besteht darin, die Funktionsweise der Zuordnungstabelle zu verstehen, die Beziehungen aufzeichnet und das Konzept der „Gruppen“-Operationen implementiert. Das Gesamtdesign des Systems basiert auf der Idee, dass es in verschiedenen MIS-Systemen „wiederverwendet“ werden kann, um die funktionalen Berechtigungseinstellungen verschiedener Systeme zu erfüllen.

          Anhang:

          Felddesign der Datentabelle des Berechtigungsverwaltungssystems

          Werfen wir einen Blick auf das Datenbanktabellendesign des Berechtigungsverwaltungssystems, das in sechs Tabellen unterteilt ist, wie unten gezeigt:

          Aktionstabelle:

          [php] Design einer universellen Rechteverwaltungsdatenbank

          In der Aktionstabelle werden alle Aktionen im System sowie aktionsbezogene Beschreibungen erfasst.

          Aktionsspaltentabelle:

          [php] Design einer universellen Rechteverwaltungsdatenbank

          Die Aktionsspaltentabelle zeichnet die Aktionsspalten auf. Wenn das System ausgeführt wird, stellt die linke Menüleiste mehrere verschiedene Funktionen bereit. Jedes Mal, wenn eine Spalte hinzugefügt wird, werden die Datensätze in der Tabelle angezeigt Fügen Sie eine hinzu, entsprechend wird eine neue Spalte in der linken Menüleiste hinzugefügt.

          Aktionsgruppentabelle:

          [php] Design einer universellen Rechteverwaltungsdatenbank

          Die Aktionsgruppentabelle zeichnet die Gruppe auf, in der sich die Aktion befindet.

          Gruppenmanagertabelle:

          [php] Design einer universellen Rechteverwaltungsdatenbank

          Die Groupmanager-Tabelle zeichnet relevante Informationen der Verwaltungsgruppe auf. Jedes Mal, wenn eine Verwaltungsgruppe hinzugefügt wird, wird hier ein Datensatz hinzugefügt.

          Meistergruppentabelle:

          [php] Design einer universellen Rechteverwaltungsdatenbank

          In der Mastergruppentabelle wird die Verwaltungsgruppe aufgezeichnet, zu der der Administrator gehört. Da ein Administrator mehreren Gruppen gleichzeitig angehören kann, kann es in der Tabelle mehrere Datensätze für einen Administrator geben.

          Mastertabelle:

          [php] Design einer universellen Rechteverwaltungsdatenbank

          Die Mastertabelle zeichnet die Informationen aller Administratoren auf. Jedes Mal, wenn ein Administrator hinzugefügt wird, wird der Tabelle ein Datensatz hinzugefügt.

        Das Obige stellt das Design der universellen Rechteverwaltungsdatenbank von [php] vor, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Die Fallstricke von SESSIONNächster Artikel:Die Fallstricke von SESSION

In Verbindung stehende Artikel

Mehr sehen