TP RBAC 表字段分析

RBAC需要用到的数据表。将建立一个五张表,这五张表分别是:
    1.    用户表(包含三个字段用户编号,用户名和用户密码)
    2.    用户组表(用户组编号和名字)
    3.    用户与组的对应关系表(组编号和用户编号)
    4.    节点表(节点编号,名字,注释,父路径编号,等级)(注:这个表很容易将人搞晕)
    5.    权限表(组编号,节点编号,父路径编号,等级)


表Think_access
    Role_ID           Node_id                pid                         level
    用户组的编号    节点表    节点表中的父ID项    节点表中的等级项
    注:如果用户组id和对应的节点id存在这张表中,就表示用户所在的用户组有权限进行对应的操作权限。


表Think_node
    id                          name        title     pid            level
  编号    项目、模块或操作名字    name备注       注①     只能为1,2,3分别代表项目,模块,操作
    注①    :
    1)如果是项目名称则项目是顶级的,它上面没有父路径编号(pid),因此pid则为0;例如,网站下有一个Admin项目,它是顶级的。因此没有父路径编号(pid),此处应填0,如果它为第一次插入数据库的,它的id则为1。全字段插入数据库应为:
    id    name      title       pid    level
    1    Admin    Admin项目节点    0     1
    2)模块。则父路径编号(pid)则为该某块所在的项目编号(id)。例如,Admin下面有一个模块为User,它是第二个插入数据库的。因此,模块的父路径(pid)应填1。全字段插入数据库应为:
    id    name     title       pid    level
    2  User    User模块节点    1         2
    3)方法。例如User模块下有Index、insert、delete三个动作或成员方法,它们分别是第三,四,五次插入数据库的。他们的父路径编号(pid)应填2。全字段插入数据库应为:
    id   name                title                    pid    level
    3    index    User模块下显示动作    2        3
    4    insert    User模块下插入动作    2        3
    5    delete   User模块下删除动作    2        3


表think_role
    id    name
    组的编号(主键)    组的名字
    注:此表中可以插入父路径编号(pid)产生组的包含关系。对应的父路径编号(pid)为所属组的编号(id)。


表think_user
    id    username    password
    用户编号(主键,int类型)    用户名(varchar类型)    密码(char类型32位)
    注:id在下一张表中结合think_role产生用户与组的关联关系。建议username设为唯一的,password采用32位md5加密。


表think_role_user
    group_id    User_id
    组编号(主键,int类型)    用户编号(主键,int类型)
    注:用户编号(user_id)对应哪一个group_id,则哪个用户就属于哪一个组。可以让同一个用户对应多个组。就意味着,一个用户具有多个组的属性和操作权限。
    最难理解,也是最核心的数据库结构和存储结构说完了,对照着这个数据库进行插入,添加修改即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值