基于uniapp的 电子书小程序——需求整理
前言
想开发一个很简单的 电子书阅读小程序,要怎么做的。下面从功能、数据库设计这一块来说一下。说不一定能从某个角度提供一些思路
开发语言
springcloud + uniapp 小程序(vue2)+mysql
说明
电子书的主题是电子书,我们在日常中使用阅读器阅读电子书的时候,流程是什么?大致流程是:
- 进入小程序,首页中有书籍的一些分类,可以搜索
- 可以查看电子书的简介
- 可以加入书架,如果未登录,则进入登录页面;
- 在登录状态下,可以直接进入阅读,会记录阅读的进度方便下次阅读时可以定位
以上的内容是核心的内容,我们可以按照自己的需求加入积分、交流区等功能

数据库设计

根据上面的功能列表,根据业务设计数据库,需要包括微信用户、书籍信息、用户书架、读书记录、类型、模块
微信用户
在小程序上,我们可以直接让用户使用微信绑定手机号登录,可以减少用户的注册,也可以避免用户设置密码
create table book_user
(id int auto_increment comment '编号'primary key,avatar_url varchar(2000) null comment '头像',account_name varchar(50) null comment '账户',account_password varchar(200) null comment '密码',tel varchar(50) null comment '联系电话',display_name varchar(50) null comment '昵称',city varchar(200) null comment '区域',age int null comment '年龄',status int default 1 null comment '状态',gender varchar(10) null comment '性别',province varchar(200) null comment '省份',country varchar(200) null comment '国籍',union_id varchar(2000) null comment 'unionId',open_id varchar(2000) null comment 'openId',bing_open_id varchar(2000) null comment '绑定的openId',create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',modify_at datetime default CURRENT_TIMESTAMP null comment '修改时间'
)comment '微信用户';
书籍信息
create table book_base
(id int auto_increment comment '编号'primary key,display_name varchar(200) null comment '书籍名',display_photo varchar(2000) null comment '书籍图片',display_url varchar(2000) null comment '书籍文件',display_module int null comment '书籍模块',display_type varchar(2000) null comment '书籍类型',display_author varchar(200) null comment '作者',display_content longtext null comment '详情',is_use int default 1 null comment '是否上架',create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',modify_at datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '编辑时间'
)comment '书籍信息';
用户书架
create table book_user_base
(id int auto_increment comment '编号'primary key,user_id int null comment '用户',display_name varchar(2000) null comment '书籍名称',display_photo varchar(2000) null comment '书籍图片',display_url varchar(2000) null comment '书籍地址',is_read int default 0 null comment '是否读完',create_at datetime default CURRENT_TIMESTAMP null comment '加入时间',modify_at datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '编辑时间'
)comment '用户书架';
读书记录
create table book_user_record
(id int auto_increment comment '编号'primary key,user_id int null comment '用户',book_id int null comment '书籍',display_name varchar(2000) null comment '书籍名称',display_num double null comment '阅读进度',create_at datetime default CURRENT_TIMESTAMP null comment '阅读日期'
)comment '读书记录';
类型
书籍类型,这里的设置是树表结构,并没有层级限制。这样设计灵活性更强
create table book_type
(id int auto_increment comment '编号'primary key,tree_id int null comment '上级类型',display_name varchar(200) null comment '类型名称',status int default 1 null comment '状态',create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',modify_at datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '编辑时间'
)comment '类型';
模块
模块这里是和电子书并没有什么关系的表。只是为了说,在小程序中,管理后台可以动态的管理小程序前端模块的显示隐藏。
create table book_module
(id int auto_increment comment '编号'primary key,display_name varchar(200) null comment '模块名',display_photo varchar(2000) null comment 'logo',display_url varchar(200) null comment '访问地址',status int default 1 null comment '状态',create_at datetime default CURRENT_TIMESTAMP null comment '创建时间',modify_at datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '编辑时间'
)comment '模块';
设想的ui页面

下一节会开始介绍前端页面的一些布局
相关文章:
基于uniapp的 电子书小程序——需求整理
前言 想开发一个很简单的 电子书阅读小程序,要怎么做的。下面从功能、数据库设计这一块来说一下。说不一定能从某个角度提供一些思路 开发语言 springcloud uniapp 小程序(vue2)mysql 说明 电子书的主题是电子书,我们在日常…...
Hutool HttpRequest 首次请求正常 第二次被系统拦截
Hutool HttpRequest 首次请求正常 第二次被系统拦截 功能描述异常现象错误代码 异常排查问题跟踪问题总结处理方案最终修改后的代码 功能描述 需要请求第三方某个接口,获取接口中的数据。 异常现象 使用main 方法 通过Hutool 工具类发出请求,获取数据…...
github国内访问小解(windows)
git 下载安装 使用 github 前必须确保电脑上已经安装了 Git,可以从 Git 官方网站去下载。 官方的网站在国内访问会比较慢,这里可以选择国内镜像:https://registry.npmmirror.com/binary.html?pathgit-for-windows/ github 之旅 确认电脑已…...
NX二次开发UF_CSYS_set_wcs_display 函数介绍
文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_set_wcs_display Defined in: uf_csys.h int UF_CSYS_set_wcs_display(int display_status ) overview 概述 Set display of work coordinate system. 展示工作坐标系。 …...
DNS 区域传输 (AXFR)
漏洞描述 docker环境搭建 使用 AXFR 协议的 DNS 区域传输是跨 DNS 服务器复制 DNS 记录的最简单机制。为了避免在多个 DNS 服务器上编辑信息,可以在一台服务器上编辑信息,并使用 AXFR 将信息复制到其他服务器。但是,如果您不保护您的服务器&…...
Ubuntu 安装 JMeter:轻松上手
Apache JMeter 是一个开源的负载测试工具,可以用于测试静态和动态资源,确定服务器的性能和稳定性。在本文中,我们将讨论如何下载和安装 JMeter。 安装 Java(已安装 Java 的此步骤可跳过) 要下载 Java,请遵…...
在工业生产环境下,服务器没有互联网,如何通过代理自己的电脑上互联网?
服务器主机是CentOS7操作系统.,服务器的局域网是10.0.6.x网段。我的笔记本的以太网口的局域网ip是也是10.0.6.x,由于这个10.0.6.x的整个局域网是没有拨号上网的所有无法访问互联网。 但是,如果笔记本脸上wifi,wifi的网段是192.168…...
【brpc学习实践六】backup request场景案例
应用场景 有时为了保证可用性,需要同时访问两路服务,哪个先返回就取哪个。在brpc中,这有多种做法,根据server是否挂在同一个命名服务内有所区别。 当后端server可以挂在一个命名服务内时 Channel开启backup request。这个Channel会先向其中一个server发送请求,如果在Ch…...
el-table导出为excel表格
目录 1.下载依赖 2.引入插件 3.定义函数 4.设置table的id 1.下载依赖 npm intall --save xlsx npm intall --save file-saver2.引入插件 import FileSaver from "file-saver"; import XLSX from "xlsx";3.定义函数 exportExcel() {let fix document…...
CVE-2022-0543(Redis 沙盒逃逸漏洞)
简介 CVE-2022-0543是一个与Redis相关的安全漏洞。在Redis中,用户连接后可以通过eval命令执行Lua脚本,但在沙箱环境中脚本无法执行命令或读取文件。然而,攻击者可以利用Lua沙箱中遗留的变量package的loadlib函数来加载动态链接库liblua5.1.s…...
查swap内存使用
查询linux的swap被什么使用了 查询centos的swap被什么进程使用了 swap内存被什么程序占用,什么程序使用了swap分区,占用swap内存的进程 查系统使用swap内存前10个进程: for i in $( cd /proc;ls |grep "^[0-9]"|awk $0 >10…...
Element UI的Tabs 标签页位置导航栏去除线条
在实际开发中,我们调整了相关样式,导致导航栏的相关样式跟随不上,如下图所示: 因为我跳转了前边文字的样式并以在导航栏添加了相关头像,导致右边的线条定位出现问题,我在想,要不我继续调整右边…...
【Python 训练营】N_1 验证密码
N_1 验证密码 题目 设计一个用户密码验证程序,要求密码输入只有3次机会,且密码中不能包含”*”字符。 分析 需要考虑3个问题:验证次数、特殊字符和正误密码判断;验证次数需要使用循环,3个问题需要用到分支结构&…...
Pinia 和 Vuex 的对比,storeToRefs 的原理
目录 1,Pinia 介绍2,和 Vuex 的对比3,storeToRefs 源码分析 1,Pinia 介绍 官网简介 Pinia 使用上的问题,官方文档很详细,这里不做赘述。 Pinia 是 Vue 的专属状态管理库,支持vue2和vue3&#x…...
Mycat分库分表的操作(配置)
Mycat是一个开源的分布式数据库中间件,它可以对数据库进行分库分表的操作,以下是Mycat分库分表的操作步骤: 配置数据源:将要操作的数据库和表通过Mycat的配置文件配置到数据源中。配置分片规则:根据分库分表的需求&am…...
android的canvas的clipRegion废弃替代代码
由于clipRegion的一些问题,导致他被废弃了,但又有时候会用到,所以写了一个工具类来替代它 代码如下 package com.example;import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Path; import android.g…...
KubeSphere 社区双周报 | Fluent Operator 2.6.0 发布 | 2023.11.10-11.23
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为:2023.11.10-2023.…...
【通俗易懂】git原理、安装及连接gitlab,github
目录 一、GIT原理【这部分也挺简单,可以看看,如果没时间可以直接跳到第二部分】 SVN与Git的的区别 二、安装Git 2.1 获取Git安装程序 2.2 Git安装过程 三、Git连接Gitlab 3.1 gitlab准备工作 3.2 本地计算机准备工作及配置git 四、Git连接Github…...
TCP /UDP协议的 socket 调用的过程
在传输层有两个主流的协议 TCP 和 UDP,socket 程序设计也是主要操作这两个协议。这两个协议的区别是什么呢?通常的答案是下面这样的。 TCP 是面向连接的,UDP 是面向无连接的。TCP 提供可靠交付,无差错、不丢失、不重复、并且按序…...
外贸独立站外部优化:提升网站可见度与吸引力的策略
随着全球电子商务的快速发展,外贸独立站已经成为众多企业拓展海外市场、提升品牌影响力的关键工具。然而,要想在竞争激烈的外贸市场中脱颖而出,除了产品优质、服务周到外,还需要做好网站的外部优化工作。本文将详细探讨如何通过有…...
H8SX单片机USB大容量存储设备开发实战指南
1. H8SX单片机USB大容量存储设备开发概述在嵌入式系统开发中,实现USB大容量存储设备(Mass Storage Class,简称MSC)功能是一项常见需求。H8SX系列单片机作为瑞萨电子推出的高性能微控制器,其内置的USB模块为开发者提供了…...
Kubernetes StatefulSet 实战:从创建到运维的完整指南
Kubernetes StatefulSet 实战:从创建到运维的完整指南 一、前言:StatefulSet 实战核心目标 本文围绕 StatefulSet 的创建、验证、扩容缩容、更新、删除 五大核心操作,结合完整命令与输出示例,帮你掌握:如何快速搭建 St…...
Real Anime Z部署教程(Mac M系列):MLX适配进展与Metal加速可行性分析
Real Anime Z部署教程(Mac M系列):MLX适配进展与Metal加速可行性分析 1. 项目概述 Real Anime Z是一款基于阿里云通义Z-Image底座模型开发的高精度二次元图像生成工具,通过专属微调权重优化了真实系二次元风格的生成效果。该工具…...
别再死磕Two-Stream了!用PyTorch从零实现一个轻量级C3D模型(附Kinetics数据集实战)
用PyTorch打造轻量级C3D模型:Kinetics数据集实战指南 在视频理解领域,动作识别一直是开发者们关注的焦点。传统Two-Stream方法虽然精度可观,但其复杂的双流结构和光流计算成本让许多实际项目望而却步。今天我们将用PyTorch实现一个更高效的解…...
基于安卓的农业气象灾害预警系统毕设
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一种基于安卓操作系统的农业气象灾害预警系统以提升农业生产活动中的灾害应对能力与决策效率。随着全球气候变化加剧及极端天气事件频发农业…...
全屋智能的理性决策:从真实体验拆解哪些功能值得投入
全屋智能的理性决策:从真实体验拆解哪些功能值得投入前两天去一个项目现场做最后的系统调试,业主突然问了我一句:“你说,我这一层楼的智能窗帘,是不是装得有点多余了?”他指的那个房间,其实一年…...
别再手动打包源码了!Maven的maven-source-plugin插件保姆级配置指南(附两种常用写法)
别再手动打包源码了!Maven的maven-source-plugin插件保姆级配置指南(附两种常用写法) 每次发布Java项目时还在手动打包源码?团队协作时总有人抱怨找不到最新版本的源代码?作为开发者,我们80%的时间都在与构…...
【限时公开】某头部电力IoT厂商已量产的嵌入式大模型部署框架(含CMSIS-NN定制OP扩展包+GDB远程符号调试桩),仅开放前500名开发者下载
更多请点击: https://intelliparadigm.com 第一章:嵌入式 C 语言与轻量级大模型适配 生产环境部署 在资源受限的嵌入式设备(如 Cortex-M7、ESP32-S3 或 RISC-V MCU)上部署轻量级大模型,需突破传统 C 语言生态与神经网…...
【T5模型架构】从Transformer到T5:架构演进与核心模块拆解
1. Transformer基础回顾:从Attention到Encoder-Decoder 要理解T5模型的创新点,我们得先回到2017年那个改变NLP格局的经典架构——Transformer。当时谷歌大脑团队发表的《Attention is All You Need》论文,彻底抛弃了传统的RNN和CNN结构&#…...
【嵌入式C与轻量大模型适配实战指南】:20年老工程师亲授3大内存对齐陷阱、4类中断冲突规避法及生产环境零宕机部署 checklist
更多请点击: https://intelliparadigm.com 第一章:嵌入式C与轻量大模型适配的工程范式演进 传统嵌入式开发以资源严苛、确定性优先为铁律,而轻量大模型(如TinyLLaMA、Phi-3-mini、MicroLlama)的兴起正倒逼底层工程范式…...
