ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# :-: 设计 rbac 表结构 ## 需要四张表 ``` 1. 角色表 Roles 2. 权限表 Permissions 3. 用户关联角色 User_has_roles 4. 角色关联权限 Role_has_permissions ``` ## migration 创建 具体表结构说明看的很清楚 ```php <?php use think\migration\Migrator; use think\migration\db\Column; use Phinx\Db\Adapter\MysqlAdapter; class Rbac extends Migrator { public function change() { $this->up(); } public function up() { $table = $this->table(config('permissions.table.role'), [ 'engine'=>'InnoDB']); $table->addColumn('name', 'string',['limit' => 50, 'default'=>'','comment'=>'角色名称']) ->addColumn('created_at', 'timestamp', [ 'comment' => '创建时间']) ->addColumn('updated_at', 'timestamp', [ 'comment' => '更新时间']) ->addIndex(['name'], ['unique' => true]) ->create(); $table = $this->table(config('permissions.table.permission'), ['engine' => 'InnoDB']); $table->addColumn('name', 'string',['limit' => 50, 'default'=>'','comment'=>'菜单名称']) ->addColumn('icon', 'string', ['limit' => 50, 'default'=>'', 'comment'=>'菜单图标']) ->addColumn('pid', 'integer', ['limit' => MysqlAdapter::INT_SMALL, 'comment'=>'父级菜单ID']) ->addColumn('module', 'string',['limit' => 50, 'default'=>'','comment'=>'模块名称']) ->addColumn('controller', 'string',['limit' => 50, 'default'=>'','comment'=>'控制器名称']) ->addColumn('action', 'string',['limit' => 50, 'default'=>'1','comment'=>'方法名称']) ->addColumn('is_show', 'integer',['limit' => MysqlAdapter::INT_TINY, 'default'=> 1,'comment'=>'1 展示 2 隐藏']) ->addColumn('created_at', 'timestamp', [ 'comment' => '创建时间']) ->addColumn('updated_at', 'timestamp', [ 'comment' => '更新时间']) ->addIndex(['name'], ['unique' => true]) ->create(); $table = $this->table(config('permissions.table.user_has_roles'), ['engine' => 'InnoDB', 'identity' => true]); $table->addColumn('uid', 'integer',['limit' => 11, 'comment'=>'用户ID']) ->addColumn('role_id', 'integer', [ 'comment' => '角色ID']) ->create(); $table = $this->table(config('permissions.table.role_has_permissions'), ['engine' => 'InnoDB', 'identity' => true]); $table->addColumn('role_id', 'integer',['limit' => 11, 'comment'=>'角色ID']) ->addColumn('permission_id', 'integer', [ 'comment' => '权限ID']) ->create(); } public function down() { } } ```