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

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 微信小程序入门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来查看我们的表是否正常创建


总结


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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7月前
|
小程序 Java 关系型数据库
基于微信小程序的智慧养老服务系统
本系统基于Java、MySQL和Spring Boot技术,构建高效、安全的养老院管理系统,提升信息处理速度与管理规范性,实现数据自动化备份与网络化管理,助力养老机构信息化升级。
|
7月前
|
JavaScript 小程序 Java
基于微信小程序的线上博物馆系统
线上博物馆系统利用互联网与数字技术,实现文化遗产的数字化保护与传播,打破时空限制,推动文化传承与教育创新。结合Java、Vue及Uniapp等技术,构建跨平台、高互动的在线展览平台,提升公众文化体验。
|
9月前
|
缓存 小程序 开发工具
最新原创uniapp+vue3仿微信界面聊天app系统
最新原创研发uniapp+vue3实战跨端仿微信App界面聊天程序。支持运行到H5+小程序+APP端。
414 6
最新原创uniapp+vue3仿微信界面聊天app系统
|
8月前
|
缓存 小程序 前端开发
商城/点餐/家政类小程序源码合集_微信抖音小程序源码开发从入门到精通实战
本文系统讲解如何利用现有源码快速开发商城、点餐、家政类微信/抖音小程序,涵盖环境搭建、核心功能实现、多平台部署与优化,提供完整技术方案。实战导向,助力开发者高效入门与落地。
|
11月前
|
消息中间件 缓存 小程序
婚恋交友相亲公众号app小程序系统源码「脱单神器」婚恋平台全套代码 - 支持快速二次开发
这是一套基于SpringBoot + Vue3开发的婚恋交友系统,支持微信公众号、Uniapp小程序和APP端。系统包含实名认证、智能匹配、视频相亲、会员体系等功能,适用于婚恋社交平台和相亲交友应用。后端采用SpringBoot 3.x与MyBatis-Plus,前端使用Vue3与Uniapp,支持快速部署和二次开发。适合技术团队或有经验的个人创业者使用。
787 8
|
10月前
|
小程序 Java 关系型数据库
圈子系统公众号app小程序系统源码圈子系统带即时通讯 多级圈子系统源码 兴趣小组系统开源 私密圈子系统代码 会员制社区系统
本圈子系统解决方案提供即时通讯、多级圈子、兴趣小组、私密社区及会员制管理功能。支持开源与商业方案,推荐ThinkSNS+、EasyClub及OpenFire等系统,并提供前后端技术选型建议,助力快速搭建社交平台。
568 0
|
存储 移动开发 小程序
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
基于开源技术栈构建的校园圈子系统小程序,整合社交与生活服务功能,涵盖兴趣圈子、私信聊天、资料共享、二手交易、兼职跑腿等六大核心模块。通过多端账号同步(微信公众号/小程序/H5),实现数据实时交互,满足学生群体的多元化需求。项目精准锚定校园市场,以“社交+服务”双轮驱动,提供一站式解决方案,支持快速部署与多校区运营,同时具备广告、佣金、会员等多元变现能力,是打造校园生态的理想工具。
1432 3
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
|
小程序 UED
拓展校友网络的创新解决方案:校园论坛圈子小程序+跑腿+二手市场系统
这是一款基于小程序的校园跑腿服务平台,支持多种注册登录方式、下单支付、跑腿接单配送、订单跟踪评价及物流查询功能,并配备客服模块提升用户体验。系统包含用户、客服、物流、跑腿员和订单五大核心模块,功能完善。此外,平台还拓展了校友网络功能,如信息咨询发布、校园社区建设和活动组织等,旨在增强校友互动与联系,形成紧密的校友生态。
399 4
|
小程序 数据安全/隐私保护
跑腿小程序系统源码
这是一款跑腿小程序,带有智能派单、系统派单、同城配送、校园跑腿、预约取件、用户端+骑手端 基于FastAdmin+thinkphp和uniapp开发的优创同城跑腿系统,支持帮取、帮送模式,包含用户端、骑手端、运营后台。
545 32