[CkAdmin]数据库表设计--权限管理数据库表设计

2018-10-08 01:43:39
38 read

权限管理数据库表设计

laravel如此优雅,所以创建数据表当然要是用laravel自带的migrate

  • 在当前项目目录中执行命令
php artisan make:migration create_admin_tables
会在 /database/migrations 下生成   日期_create_admin_tables.php
  • 在此类的up方法中添加
    // 后台管理员表
          Schema::create('admin_users', function (Blueprint $table) {
              $table->increments('id');
              $table->string('username', 190)->unique();
              $table->string('password', 60);
              $table->string('name');
              $table->string('avatar')->nullable();
              $table->string('remember_token', 100)->nullable();
              $table->timestamps();
          });
          // 角色表
          Schema::create('admin_roles', function (Blueprint $table) {
              $table->increments('id');
              $table->string('name', 50)->unique();
              $table->string('slug', 50);
              $table->timestamps();
          });
          // 权限表
          Schema::create('admin_permissions', function (Blueprint $table) {
              $table->increments('id');
              $table->string('name', 50)->unique();
              $table->string('slug', 50);
              $table->string('http_method')->nullable();
              $table->text('http_path')->nullable();
              $table->timestamps();
          });
          // 后台菜单表
          Schema::create('admin_menu', function (Blueprint $table) {
              $table->increments('id');
              $table->integer('parent_id')->default(0);
              $table->integer('order')->default(0);
              $table->string('title', 50);
              $table->string('icon', 50);
              $table->string('uri', 50)->nullable();
              $table->string('permission')->nullable();
              $table->timestamps();
          });
          // 管理员角色关联表
          Schema::create('admin_role_users', function (Blueprint $table) {
              $table->integer('role_id');
              $table->integer('user_id');
              $table->index(['role_id', 'user_id']);
              $table->timestamps();
          });
          // 角色权限关联表
          Schema::create('admin_role_permissions', function (Blueprint $table) {
              $table->integer('role_id');
              $table->integer('permission_id');
              $table->index(['role_id', 'permission_id']);
              $table->timestamps();
          });
          // 管理员权限表
          Schema::create('admin_user_permissions', function (Blueprint $table) {
              $table->integer('user_id');
              $table->integer('permission_id');
              $table->index(['user_id', 'permission_id']);
              $table->timestamps();
          });
          // 角色菜单表
          Schema::create('admin_role_menu', function (Blueprint $table) {
              $table->integer('role_id');
              $table->integer('menu_id');
              $table->index(['role_id', 'menu_id']);
              $table->timestamps();
          });
          // 后台操作记录表
          Schema::create('admin_operation_log', function (Blueprint $table) {
              $table->increments('id');
              $table->integer('user_id');
              $table->string('path');
              $table->string('method', 10);
              $table->string('ip');
              $table->text('input');
              $table->index('user_id');
              $table->timestamps();
          });
    
  • 在down方法中添加
    Schema::dropIfExists('admin_users');
          Schema::dropIfExists('admin_roles');
          Schema::dropIfExists('admin_permissions');
          Schema::dropIfExists('admin_menu');
          Schema::dropIfExists('admin_operation_log');
          Schema::dropIfExists('admin_user_permissions');
          Schema::dropIfExists('admin_role_users');
          Schema::dropIfExists('admin_role_permissions');
          Schema::dropIfExists('admin_role_menu');
    
数据库表关系稍后设计图发出
使用 Laragon 在 Windows 中搭建 Laravel 开发环境
[CKADMIN]功能实现--后台模板搭建及实现后台登录功能