首页 > 其他分享 >管理后台

管理后台

时间:2023-05-19 13:45:45浏览次数:33  
标签:班级 管理 老师 学生 课程表 课程 后台 id

负责的功能

 

课程模块

 

主要包括老师的课程和学生的课程管理,因为数据库有老师和学生的数据

老师需要安排学生上课

所以会有一个课程表,可能会问到数据库表是怎么设计的,简单列一下主要的字段

 

课程表(从开发的角度来看,课程表不应该跟老师、班级、学生绑定,仅仅属于一个单独的表,不受老师、班级、学生的改变而改变),

 

老师表(一般不会问到,就是一些老师的基本信息)

 

学生表(一般不会问到学生的基本信息)

 

班级表(一般不会问到)

 

课程表:

课程id
课程名称
课程的价格
录入的时间
修改的时间
课程的状态(是否下架)

 

老师教学表

主键id
课程id
班级id
教学时间

学生课程表

老师id
班级id
学生id
课程id

 

学生购买课程表

主键id
课程id
渠道:   (可以分为 现金、微信、支付宝、网上购买、或者优惠购买等)可以作为工厂+策略模式 使用的点
金额:  购买课程所需金额
课程使用时间:  用于后面rocketMQ进行消息提醒给老师

 

主要工作:业务

老师教学课程安排的增删改查:

主要是创建老师课程,创建班级,录入学生课程表信息,然后通过多表关联

可以查询出老师自己个人所关联的班级,以及教学的课程

老师点击某个班,通过多表联查可以查询自己班内的学生人数,学生的到课状态,学生课程到期时间等等

 

技术描述:

一、使用多线程,为什么要用到多线程?

因为需要统计的报表数据量大,导出的数据报表的sheet表有多张,而每张sheet都是不同的数据,查询不同的mysql表,如果一个线程去处理,会出现耗时很久的情况,所以使用多线程,每个线程负责处理一个sheet表包含的mysql数据的查询,最后在主线程中将多个sheet导出到excel中

 

二、为什么要用策略模式

 

因为不同的学生购买课程的渠道不同,有些渠道会有价格上的出入,而导出报表的时候需要对不同的渠道的学生进行汇总统计,所以对于这个场景,使用了策略模式,以后,就算再增加一个渠道,我也只是再增加一个策略类来处理,而不会动到业务的主逻辑,大概就是什么对修改关闭对扩展开放之类的,吹一下就行

 

三、因为学生购买的课程是有限时间限制的,对于学生即将到期的课程,老师可以设置一天或者前几天即将到期的学生,通过消息提醒自己,,使用定时任务查询每个即将到期的学生,通过RocketMQ的延时功能提醒老师

标签:班级,管理,老师,学生,课程表,课程,后台,id
From: https://www.cnblogs.com/anothercfx/p/17414859.html

相关文章

  • “Linux 基础入门(新版)”实验报告 用户及文件权限管理
    用户及文件权限管理1.查看用户$whoami或者$whomomlikes输出的第一列表示打开当前伪终端的用户的用户名,第二列的pts/0中pts表示伪终端,pts/0后面那个数字就表示打开的伪终端序号,你可以尝试再打开一个终端,然后在里面输入whoami,看第二列是不是就变成pts/1了,第......
  • 面试官让你说说react状态管理?
    开发者普遍认为状态是组件的一部分,但是同时却又在剥离状态上不停的造轮子,这不是很矛盾么?对于一个最简单的文本组件而言functionText(){const[text,setText]=useState('载入')return(){<p>{text}</p>}}你觉得应该把text从Text组件中剥离么?如果......
  • java-raft框架之atomix进行分布式管理
    共识算法在一个分布式的系统中,管理各个节点的一致性(共识)一直是个很有难度的问题。在近几十年的发展中,于1990年诞生的Paxos算法是其中最为经典的代表,并一统江湖数几十载。如著名的zookeeper、chubby都是基于Paxos算法的经典应用。不过Paxos算法的复杂度和难以理解性,也吸引了一些大佬......
  • 小程序技术,打开跨端管理的思路,提高客户满意度和忠诚度
    ​小程序容器作为跨端管理的有效工具,已经成为越来越多企业的选择。通过小程序容器,企业可以实现跨平台部署,提供一致的用户体验,整合多种渠道实现全渠道协同,进行个性化营销,以及通过数据分析和监控等手段优化产品和服务。这些功能和优势不仅可以提高用户的满意度和忠诚度,还可以为企业......
  • 源代码管理工具导览
    源代码管理工具简介在软件开发中,源代码管理工具是非常重要的。它们被用来跟踪和管理软件的源代码,以确保团队成员可以协作开发,控制版本,修复错误和增强代码。这些工具允许多个开发人员同时在同一个代码库上工作,从而避免了代码的混乱和错误。此外,它们还提供了版本控制的功能,使得开......
  • 一个.Net开发的功能强大、易于使用的流媒体服务器和管理系统
    推荐一个视频管理系统,非常适合个人或者公司打造视频网站。项目简介这是基于.NetCore开发的,跨平台的开源项目;支持多种音视频格式,如MP3、MP4、AVI、WMV、FLV等;支持本地管理与远程管理,让管理员可以轻松的管理视频资源。而且该项目还提供多平台的客户端,支持Web、桌面、Liunx、安卓......
  • 37基于java的职工管理系统设计与实现
    本章节给大家带来一个基于java的职工管理系统设计与实现,可适用于员工管理系统,企业员工管理系统,公司员工管理系统,企业人事管理系统,基于java职工管理系统,前后端分离,员工考勤管理系统,职工奖惩管理系统,职员合同管理,HR管理系统,人事HR管理系统等;引言由于计算机的快速发展,企业员工管......
  • ☆ 用Zotero高效管理文献【教程...】
    Zotero介绍Zotero是一款免费开源的文献管理工具,它可以帮助用户收集、整理、管理和引用文献。除了基本的文献管理功能外,Zotero还支持添加标签、笔记、附件等功能,可以满足用户对文献管理的大部分需求。Zotero的优点包括:免费:Zotero是一款完全免费的软件,不需要任何付费订阅。开源......
  • python包管理工具:Conda和pip比较
    Conda和pip通常被认为几乎完全相同。虽然这两个工具的某些功能重叠,但它们设计用于不同的目的。Pip是PythonPackagingAuthority推荐的用于从PythonPackageIndex安装包的工具。Pip安装打包为wheels或源代码分发的Python软件。后者可能要求系统安装兼容的编译器和库。Conda是......
  • 23 KVM管理虚拟机-使用VNC密码登录虚拟机
    23KVM管理虚拟机-使用VNC密码登录虚拟机本章介绍使用VNC密码登录虚拟机的方法。23.1概述当虚拟机操作系统安装部署完成之后,用户可以通过VNC协议远程登录虚拟机,从而对虚拟机进行管理操作。23.2前提条件使用RealVNC、TightVNC等客户端登录虚拟机,在登录虚拟机之前需要获取如下......