微信小程序入门03-搭建权限系统,建库建表

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 微信小程序入门03-搭建权限系统,建库建表

我们准备零基础搭建一个小程序,小程序分为两部分,一个是用户访问的程序,可以是小程序也可以是H5。另外一个就是管理员使用的管理后台,后台第一个要实现的就是搭建权限系统。为了搭建权限系统,我们先需要梳理概念


1 RBAC模型


我们首先问一下chatgpt如何设计一个权限系统


设计一个权限系统需要考虑以下几个方面:


用户与角色的关系:确定每个用户在系统中所扮演的角色,比如管理员、普通用户等。


角色与权限的关系:为每个角色分配相应的权限,比如某个角色可以查看、修改、删除某些数据,而另一个角色只能查看。


资源管理:确定需要进行权限控制的资源,比如文件、页面、数据等。


权限验证:在用户访问某个资源时,需要对用户所属的角色和该资源的权限进行验证,以决定是否允许访问。


基于以上方面,可以设计一个基本的权限系统框架。在具体实现时,可以采用一些常用的技术,比如 RBAC(基于角色的访问控制)模型、ACL(访问控制列表)模型等。同时,需要注意安全性和性能方面的考虑,比如防止恶意攻击、避免权限验证成为系统瓶颈等。


准备采用RBAC的模型,问一下chatgpt啥是RBAC


RBAC是基于角色的访问控制(Role-Based Access Control)的缩写。它是一种安全访问控制机制,它通过对用户赋予角色,进而控制用户对资源的访问。在RBAC模型中,用户角色是与其所拥有的权限相关联的。这些权限可被分配给不同的角色,而不是直接给予用户。这样做的好处是,管理员可以更轻松地管理用户和权限,而且可以更容易地分配权限给多个用户。RBAC模型被广泛地应用在计算机系统、网络安全、企业管理等领域。


我们使用e-r图来表达一下三者直接的关系


2 表结构设计


有了e-r图我们就可以设计数据库的表结构,分别有如下表


用户表(user)

字段名称

字段类型

字段名描述

user_id

INT

用户ID

username

varchar

用户名

password

varchar

密码

email

varchar

邮箱

phone

varchar

手机号

角色表(role)

字段名称

字段类型

字段名描述

role_id

INT

角色ID

role_name

varchar

角色名称

权限表(permission)

字段名称

字段类型

字段名描述

permission_id

INT

权限ID

permission_name

varchar

权限名称

permission_desc

varchar

权限描述

角色权限关系表(role_permission)

字段名称

字段类型

字段名描述

role_id

INT

角色ID

permission_id

INT

权限ID

用户角色关系表(user_role)

字段名称

字段类型

字段名描述

user_id

INT

用户ID

role_id

INT

角色ID


3 数据库脚本


CREATE DATABASE diancan;
CREATE TABLE user (
  user_id INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(50) NOT NULL UNIQUE,
  password VARCHAR(50) NOT NULL,
  email VARCHAR(50) NOT NULL UNIQUE,
  phone VARCHAR(20) NOT NULL UNIQUE
);
CREATE TABLE role (
  role_id INT PRIMARY KEY AUTO_INCREMENT,
  role_name VARCHAR(50) NOT NULL UNIQUE
);
CREATE TABLE permission (
  permission_id INT PRIMARY KEY AUTO_INCREMENT,
  permission_name VARCHAR(50) NOT NULL UNIQUE,
  permission_desc VARCHAR(100) NOT NULL
);
CREATE TABLE role_permission (
  role_id INT,
  permission_id INT,
  PRIMARY KEY(role_id, permission_id),
  FOREIGN KEY(role_id) REFERENCES role(role_id),
  FOREIGN KEY(permission_id) REFERENCES permission(permission_id)
);
CREATE TABLE user_role (
  user_id INT,
  role_id INT,
  PRIMARY KEY(user_id, role_id),
  FOREIGN KEY(user_id) REFERENCES user(user_id),
  FOREIGN KEY(role_id) REFERENCES role(role_id)
);


4 将Mysql添加到系统变量中


如果我们想在cmd中直接使用Mysql的命令,需要将mysql添加到系统变量中


在此电脑,点击右键,点击属性

点击高级系统设置

点击环境变量

选中Path,点击编辑

点击新建

输入mysql的安装目录,要选到bin目录

重新打开cmd,输入如下命令

mysql -V

可以看到已经可以正常显示mysql的版本了


5 登录mysql


在命令行输入登录命令


mysql -uroot -p


6 创建数据库


在命令行输入创建脚本

create database dianzan;

然后输入以下脚本查看是否创建成功


show databases;

然后我们切换到创建好的数据库


use dianzan;

输入我们创建表的脚本

可以使用show tables来查看我们的表是否正常创建


总结


我们本篇是介绍如何搭建权限系统,包括如何建库建表,搭建库表就和盖房子打地基一样,地基打扎实了我们就可以往上盖楼了。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 JSON 小程序
微信小程序入门之新建并认识小程序结构
微信小程序入门之新建并认识小程序结构
50 1
|
16天前
|
小程序 数据挖掘 UED
开发1个上门家政小程序APP系统,都有哪些功能?
在快节奏的现代生活中,家政服务已成为许多家庭的必需品。针对传统家政服务存在的问题,如服务质量不稳定、价格不透明等,我们历时两年开发了一套全新的上门家政系统。该系统通过完善信用体系、提供奖励机制、优化复购体验、多渠道推广和多样化盈利模式,解决了私单、复购、推广和盈利四大痛点,全面提升了服务质量和用户体验,旨在成为家政行业的领导者。
|
26天前
|
存储 传感器 小程序
跳绳计数小程序开发系统
首先,我们需要明确跳绳计数小程序的核心功能:为用户提供跳绳计数的便捷方式。这意味着小程序需要能够准确地记录用户的跳绳次数,并为用户提供清晰、直观的计数展示。
|
1月前
|
XML 小程序 JavaScript
小程序入门之项目配置说明和数据绑定
小程序入门之项目配置说明和数据绑定
40 1
|
3月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
104 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
1月前
|
小程序 前端开发 JavaScript
小程序入门之认识view和text组件
小程序入门之认识view和text组件
48 0
|
3月前
|
小程序
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)
本文介绍如何在Taro项目中配置深色模式。通过在`src/app.config.ts`设置`darkmode`选项和在`theme.json`中定义主题变量,可以实现跟随系统主题的界面风格切换。
101 0
Taro@3.x+Vue@3.x+TS开发微信小程序,根据系统主题展示不同样式(darkMode)
|
3月前
|
小程序
关于我花了一个星期学习微信小程序开发、并且成功开发出一个商城项目系统的心得体会
这篇文章是作者关于学习微信小程序开发并在一周内成功开发出一个商城项目系统的心得体会,分享了学习基础知识、实战项目开发的过程,以及小程序开发的易上手性和开发周期的简短。
关于我花了一个星期学习微信小程序开发、并且成功开发出一个商城项目系统的心得体会
|
4月前
|
小程序 数据挖掘 UED
餐饮店小程序开发定制桌边二维码点餐系统
随着技术不断进步,各行各业都在使用新工具来提高效率和服务质量。餐饮业也不例外。餐饮点餐小程序系统是基于微信公众平台开发的在线点餐方式。顾客可以通过手机微信扫描餐桌上的二维码,进入餐厅的点餐小程序,选择菜品、数量和口味,直接完成点餐。点餐系统会自动保存并发送给厨房,避免了传统手工点餐容易出错的问题。
|
4月前
|
小程序 前端开发 物联网
无人桌球室小程序平台系统定制开发方案
【项目摘要】随着社会进步和科技发展,无人桌球室小程序应运而生,解决传统桌球室管理难题。提供在线预订、自动计分、赛事查询及会员管理功能,采用微信小程序前端、微服务后端及物联网智能设备技术实现。市场推广结合社交媒体、线下活动及口碑营销。需开发支持,请联系小编。

热门文章

最新文章