ホームページ >バックエンド開発 >PHPチュートリアル >PHPのパーミッション設計について、その対処方法

PHPのパーミッション設計について、その対処方法

WBOY
WBOYオリジナル
2016-06-13 12:56:24804ブラウズ

PHP 権限の設計について
説明: PHP 権限メニューを作成し、異なるユーザー ログインに応じてデータベースから異なるメイン メニューとサブメニューを循環させたいと考えています
データベース構造は以下の通りです
cfg_useraccount \ストレージユーザー情報
cfg_role \ストレージのロール情報
cfg_resource \ストレージメニュー情報
cfg_permission \ロールが所有する権限

これで、ログイン時に取得したユーザー ID を使用して、ユーザーが所有するメイン メニューを取得できます。しかし、ユーザーが所有するサブメニューを取得した場合は、一般的にはどうすればよいでしょうか?現時点ではわかりません
\select a.RoleID,b.ResourceName,b.URL from cfg_permission a join cfg_resource b on a.ResourceID=b.ResourceID where roleID in (select roleID from cfg_useraccount where username='admin');



<br>
//データベース CIM<br>
データベース作成 cim デフォルト charset=utf8;<br>
<br>
//ユーザーテーブル<br>
テーブル cfg_UserAccount<br> を作成します
(<br>
ID int(4) NOT NULL 主キー AUTO_INCREMENT,<br>
ユーザー名 varchar(20),<br>
パスワード varchar(20),<br>
MobilePhone varchar(20),<br>
CreateTM varchar(20),<br>
UpdateTM varchar(20),<br>
ロールID int(4)<br>
) デフォルトの CHARSET=UTF8;<br>
//データのフォーマットとテストデータの挿入<br>
insert into cfg_UserAccount (UserName,PassWord,MobilePhone,CreateTM,RoleID)values('admin','111111','15957118564','2011-12-30','10');<br>
insert into cfg_UserAccount (UserName,PassWord,MobilePhone,CreateTM,RoleID)values('Liu Cheng','111111','15957118564','2011-12-30','20');<br>
insert into cfg_UserAccount (UserName,PassWord,MobilePhone,CreateTM,RoleID)values('Zou Qiongfang','111111','13735862872','2011-12-30','30');<br>
<br>
<br>
//文字テーブル<br>
テーブル cfg_Role を作成します<br>
(<br>
ロールID int(4),<br>
役割名 varchar(20),<br>
備考 varchar(20)<br>
)DEFAULT CHARSET=UTF8;<br>
//テストデータを挿入<br>
insert into cfg_Role(RoleID,RoleName,Remark)values('10','スーパー管理者','すべてのシステム権限があります');<br>
insert into cfg_Role(RoleID,RoleName,Remark) 値 ('20','技術部門','顧客サービス管理およびその他の権限がある');<br>
insert into cfg_Role(RoleID,RoleName,Remark)values('30','部門管理者','データ変更権限あり');<br>
insert into cfg_Role(RoleID,RoleName,Remark)values('40','Financial Manager','Statistical 勤怠とボーナス');<br>
<br>
<br>
//リソーステーブル<br>
テーブル cfg_Resource を作成します<br>
(<br>
リソースID int(4),<br>
リソース名 varchar(20),<br>
備考 varchar(20),<br>
URL varchar(100),<br>
);<br>
<br>
insert into cfg_Resource (ResourceID,ResourceName,Remark,URL)values('100','Customer Service Management','Manage daily customer services records','SeviceManager.php');<br>
insert into cfg_Resource (ResourceID,ResourceName,Remark,URL)values('101','顧客サービス サブメニュー 1','毎日の顧客サービス記録の管理','SeviceManager.php?action=add');<br>
insert into cfg_Resource (ResourceID,ResourceName,Remark,URL)values('102','顧客サービス サブメニュー 2','毎日の顧客サービス記録の管理','SeviceManager.php?action=del');<br>
insert into cfg_Resource (ResourceID,ResourceName,Remark,URL)values('200','Member Management','Member Add and Query','MemberService.php');<br>
insert into cfg_Resource (ResourceID,ResourceName,Remark,URL)values('300','Query Management','Query Management','Search.php');<br>
insert into cfg_Resource (ResourceID,ResourceName,Remark,URL)values('400','再訪問管理','顧客サービス記録の再訪問','Visit.php');<br>
insert into cfg_Resource (ResourceID,ResourceName,Remark,URL)values('500','Knowledge Base','Product FAQ','Knowledge.php');<br>
insert into cfg_Resource (ResourceID,ResourceName,Remark,URL)values('600','データ管理','データ バックアップ統計関連','Backup.php');
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。