Inhaltsverzeichnis
回复内容:
Heim Backend-Entwicklung PHP-Tutorial PHP-后台权限管理设计问题

PHP-后台权限管理设计问题

Jun 06, 2016 pm 08:17 PM
php

有没有哪位大哥做过后台权限管理这个模块的?能否给我说下你的设计思路?有文档给我看看也行(我也在网上找了资料,才来提问的,不要让我自行百度好吗?心塞...)

我是这么想的,有三张表,管理员表管理组表规则表

<code>管理员表(members)
 m_id       m_name   m_passw   m_groupid
管理员ID     用户名    密码     管理所对应的管理组ID  

规则表(rules)
r_id     r_name      r_method         r_status
规则ID    规则名    控制器名/方法名      状态

管理组(group)
g_id     g_name     g_content
组ID      组名       组权限(包含这一组所有的规则ID)</code>
Nach dem Login kopieren
Nach dem Login kopieren

如上面代码里的,我觉得三张表就可以应付了,为什么我看到网上有6、7张表,之多,中间有关联表映射表什么的东西,我想知道,这么多表具体有什么作用呢?实际操作起来(操作数据库)还很复杂,如果是必须,具体作用是什么?求解答疑惑

回复内容:

有没有哪位大哥做过后台权限管理这个模块的?能否给我说下你的设计思路?有文档给我看看也行(我也在网上找了资料,才来提问的,不要让我自行百度好吗?心塞...)

我是这么想的,有三张表,管理员表管理组表规则表

<code>管理员表(members)
 m_id       m_name   m_passw   m_groupid
管理员ID     用户名    密码     管理所对应的管理组ID  

规则表(rules)
r_id     r_name      r_method         r_status
规则ID    规则名    控制器名/方法名      状态

管理组(group)
g_id     g_name     g_content
组ID      组名       组权限(包含这一组所有的规则ID)</code>
Nach dem Login kopieren
Nach dem Login kopieren

如上面代码里的,我觉得三张表就可以应付了,为什么我看到网上有6、7张表,之多,中间有关联表映射表什么的东西,我想知道,这么多表具体有什么作用呢?实际操作起来(操作数据库)还很复杂,如果是必须,具体作用是什么?求解答疑惑

你可以看一下PHPCMS的权限设计

常见的设计方式RBAC:
设计思路:通过对当前访问URI进行权限鉴定
数据结构:

<code>表1:权限表,用于存放所有的访问URI
表2:权限组表,存权限组拥有访问权限的URI的id
表2:权限组,权限组对应有哪些用户
</code>
Nach dem Login kopieren

大致就是这么个思路

在你的基础上补充一下,你后台应该有一张后台菜单目录表,表里面记录了具体菜单名称对应的控制器方法名信息,权限规则表里把存控制器信息字段可以改成存菜单ID,多个可以逗号隔开。

一张用户表(必须字段gourpid 记录该属于用户组id), 一张用户组表(必须字段node,用来记录菜单表id,用逗号隔开记录),一张后台菜单表(用来记录菜单的url,也用于后台菜单遍历出菜单)。 用户登陆时,查询该用户属于哪个用户组,取出用户组的node,然后用node查出菜单遍历出菜单,也可以做相应的权限

  1. 可以看一下 YII2 的权限设计,每个用户可以对应多个角色,不同角色可以设置不同的权限:http://www.yiichina.com/doc/guide/2.0/security-authorization

  2. 或者参考一下discuz的权限设置

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

CakePHP-Protokollierung CakePHP-Protokollierung Sep 10, 2024 pm 05:26 PM

Die Anmeldung bei CakePHP ist eine sehr einfache Aufgabe. Sie müssen nur eine Funktion verwenden. Sie können Fehler, Ausnahmen, Benutzeraktivitäten und von Benutzern durchgeführte Aktionen für jeden Hintergrundprozess wie Cronjob protokollieren. Das Protokollieren von Daten in CakePHP ist einfach. Die Funktion log() wird bereitgestellt

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.

See all articles