设计一个宿舍后台管理系统,具体要求如下:

图片说明

确定实体关系,RBAC,数据库表的设计。

  1. 用户:只有后台用户可以登录。
  2. 角色:学生用户,后台用户(后台用户又可以分为两类:高级管理员SuperAdmin,普通宿舍管理员Admin)
  3. 权限:
    • 学生用户在后台这边没有任何权限
    • 高级管理员有图中1,2权限+6,7,8,9权限
    • 普通宿舍管理员有图中3,4,5权限+6,7,8,9权限。

数据库表设计

  1. Admin表(adminName字符串保证不能重复,adminPassword字符串,adminAuthority字符串保存用户可以执行的权限操作(逗号分隔))
  2. Student表(studentName字符串保证不重复,studentPassword字符串,studentRoom字符串(外键))
  3. Room表(roomId字符串宿舍号保证不能重复,roomFloor字符串表示这一间宿舍属于哪个楼,roomBedTotalNum整数类型表示床位总数,roomBedNowNum整数剩余的床位数量)

概要设计

  1. 技术选型-------------->>>>>>>>thinkphp5+xadmin1.1+宝塔lamp(极速安装)+腾讯云centos7.4,vscode连到远程服务器直接写了……就是为了快……网站域名www.zxmcoder.cn。
  2. 第一部分是权限验证:这部分工作写一个公有类common,所有的自己写的控制器都继承这个common类,这个类主要完成权限控制的工作(也就是不同的用户显示不同的后台,对每一个访问都要判断是否有权限,session会话保存用户名,超过session时间就要重新登录……)
  3. 其它的就是一些增删改查的功能……

详细设计

  1. MVC的结构都在/www/wwwroot/www.zxmcoder.cn/application/admin这些下面。
  2. admin/model里面在这个后台不写东西。
  3. admin/controller里面——
    • Room.php(1,6)
    • User.php(2,3,4,5)
    • Main.php(7,8)
    • Common.php(权限控制,对每一个请求进行检查)
    • Login.php(完成9号功能,不需要免登录+查表,失败->返回登陆界面,成功->跳转到main处理)
  4. admin/view增加四个前端的文件夹(common不需要)
  5. 配置database.php文件。
  6. 前端样式放到pubic/static中。

具体的接口设计

接口名称 所属角色 详细描述 Y/N
admin/room/showroom !Student 显示:宿舍号/所属楼/床位剩余情况/总床位数量 Y
admin/room/addroom SuperAdmin 增加一个宿舍(即使是新盖了一栋楼,也要以宿舍为单位添加)
admin/room/delroom SuperAdmin 删除一个宿舍(同样操作的单位是宿舍而不是床位)
admin/room/updateroom SuperAdmin 更改一个宿舍的信息(宿舍号不可以修改……所在楼不可以修改……修改总床位的数量)
admin/user/showuser SuperAdmin 显示普通宿舍管理员+学生用户
admin/user/deluser SuperAdmin 删除某个学生或者是宿管
admin/user/adduser SuperAdmin 增加学生or宿管
admin/user/setstudentroom Admin 宿管给学生分配宿舍
admin/user/updatestudentroom Admin 宿管给学生更改宿舍
admin/user/delstudentroom Admin 宿管强制给学生退宿
admin/main/dopassword !Student 修改密码 Y
admin/main/logout !Student 用户退出 Y
admin/main/index !Student 跳转到主界面 Y
admin/login/dologin !Student 处理登录的逻辑 Y
admin/login/index !Student 后台登录界面 Y

开发过程中遇到的问题

  1. 参考github上的tp5代码,dosubmit……
  2. 为什么大写字母不行,数据库表和字段为什么不可以用大写字母???