本人 php技術小白,今天作rbac 之前接觸的不是太多 因而便吧本身 今天作的整理一下php
首先呢 建立五張表sql
CREATE TABLE t_user(
user_id NUMBER(10) PRIMARY KEY, user_name VARCHAR2(30), gender NUMBER(1), birthday DATE, create_time DATE DEFAULT SYSDATE ); COMMENT ON TABLE t_user IS '用戶表'; COMMENT ON COLUMN t_user.user_id IS '用戶ID'; COMMENT ON COLUMN t_user.user_name IS '用戶姓名'; COMMENT ON COLUMN t_user.gender IS '性別{1男/0女}'; COMMENT ON COLUMN t_user.birthday IS '出生日期'; COMMENT ON COLUMN t_user.create_time '建立時間';
CREATE TABLE t_role(
role_id NUMBER(10) PRIMARY KEY, role_name VARCHAR2(30), create_time DATE DEFAULT SYSDATE ); COMMENT ON TABLE t_role IS '角色表'; COMMENT ON COLUMN t_role.role_id IS '角色ID'; COMMENT ON COLUMN t_role.role_name IS '角色名稱'; COMMENT ON COLUMN t_role.create_time '建立時間';
CREATE TABLE t_power(
power_id NUMBER(10) PRIMARY KEY,
power_url varchar(30), power_name VARCHAR2(30), create_time DATE DEFAULT SYSDATE ); COMMENT ON TABLE t_power IS '權限表'; COMMENT ON COLUMN t_power.power_id IS '權限ID'; COMMENT ON COLUMN t_power.power_name IS '權限名稱';
COMMENT ON COLUMN t_power.power_url IS '權限名稱相對應的路徑';
COMMENT ON COLUMN t_power.create_time '建立時間';COMMENT ON COLUMN t_power.power_url IS '權限名稱相對應的路徑';
CREATE TABLE t_user_role(
user_id NUMBER(10) NOT NULL, role_id NUMBER(10) NOT NULL , create_time DATE DEFAULT SYSDATE ); COMMENT ON TABLE t_user_role IS '用戶角色(關係)表'; COMMENT ON COLUMN t_user_role.user_id IS '用戶ID'; COMMENT ON COLUMN t_user_role.role_id IS '角色ID'; COMMENT ON COLUMN t_user_role.create_time '建立時間';
CREATE TABLE t_role_power(
role_id NUMBER(10) NOT NULL, power_id NUMBER(10) NOT NULL ); COMMENT ON TABLE t_role_power IS '角色權限(關係)表'; COMMENT ON COLUMN t_role_power.role_id IS '角色ID'; COMMENT ON COLUMN t_role_power.power_id IS '權限ID'; COMMENT ON COLUMN t_role_power.create_time '建立時間';建立完以上幾張表以後 進行登陸的操做 登陸存cookie或session根據name或id查詢此用戶的權限 而後根據對應權限展現對應信息查詢sqlselect * from power //權限表表名 where power_id //權限表idin(select power_id from role_power where role_id in (select role_id from user_role where user_id = 1))還不完善,,後續改進