Heim > Artikel > Backend-Entwicklung > [php] Design einer universellen Rechteverwaltungsdatenbank
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
Ü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:
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:
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:
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:
Basierend auf der obigen Analyse entwerfen wir die Datenbankstruktur, wie unten gezeigt:
Klicken Sie hier um die Daten des Berechtigungsverwaltungssystems anzuzeigen. Tabellenfelddesign
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.
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:
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:
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:
In Anbetracht der obigen Situation sollte das Aktionsfeld zum Zuordnen verwendet werden, weil:
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:
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:
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:
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:
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:
Die beiden Tabellen sind über das Feld actioncolumnid miteinander verknüpft. Die Leistung dieser Zuordnung in der Datenbank ist wie folgt:
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?
|
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.