【机房报修管理系统】后端篇(一) 设计数据表

一、系统模块设想


1.系统分析

    万事开头难,要做一个系统,首先得分析这一个系统究竟需要什么功能。"机房报修管理系统"需要实现的操作就是:报修人扫面二维码报修电脑—>后台管理员获得报修信息—>管理员回应已收到报修请求—>后台管理人员派人维修—>维修完成后管理员写维修经历并把表单转为历史表单。

2.功能分块

    对于上面的操作需求,我们能够做以下功能分块:

  • 管理员模块
    能对于管理员进行管理,能够使用管理员进行后台管理登录。
  • 维修工单模块
    对报修人提供的报修信息进行记录,包括出现的问题,提交时间,维修状态等。
  • 历史工单模块
    和维修工单模块差不多,但是精简了一些不必要的信息,如报修日期;新增管理员对此次维修的备注。
  • 实训室模块
    能够记录实训室电脑数,属于哪一栋实训楼。
  • 实训楼模块
    为实训室提供所属实训楼。


二、数据库设计


    讲完了对系统模块的设想后,就需要开始认真设想数据库了,设计数据库需要遵守一个原则,那就是不能有太大的冗余,例如实训室实训楼模块,需要在实训室设计一个字段,用于表示实训室属于哪一栋实训楼,一般来说我们会直接在实训室中新建一个所属实训楼字段building,然后把该实训楼直接填进去。
    这样做确实可行,但是这样做会出现两个问题:一是数据冗余,试想一下,一大堆实训楼A、实训楼B、实训楼C的数据在你的表中重复出现,一旦数据量多了,数据库占用的空间就会很大;二是耦合程度太高了,不利于以后的修改,一旦我实训楼A变成了教学楼A呢?那样需要改动大量数据,显得费时费力。
    所以说我们应该把实训楼实训室分为两个对象,由于实训室属于实训楼,我们能够以外键的形式将两个表连接起来,这样实训室building字段能够用实训楼ID代替,这样依赖减少了数据冗余,毕竟相对于文字来说,数据所占的空间更少;当需要修改实训楼名称的时候质询要修改实训楼表中相关实训楼名称即可,降低了耦合。

1.数据表

(一)管理员表administrator

    上面提到我们需要一个管理员模块用于管理及登录,所以我们把管理员单独一个表,以下为设计字段。

  • admin_id(管理员唯一ID)
  • admin_password(管理员密码)
  • admin_name(管理员姓名)
  • admin_phone(管理员手机号)
  • role_id(管理员角色)
  • admin_email(管理员邮箱)

(二)角色表role

由于管理员有两种角色:普通管理员和超级管理员,所以需要建立角色表,以下为设计字段。

  • role_id(角色ID)
  • role_name(角色名称)

(三)维修工单表orders

在设计当初,曾经想过把用户分离出来独立成一个用户表,但是想到用户并不是固定不变的,每次报修人的信息都是不同的,一般只会使用一次用户信息或者根本不需要,如果再设计一个用户表,相当于是绕了一圈,做了无用功,所以用户表直接和工单包合在一起了。

  • order_id(维修工单ID)
  • problem(工单问题)
  • computer_number(损坏的电脑编号)
  • class_id(所属实训室ID)
  • building_id(所属实训楼ID)
  • status(工单状态,0为未受理,1为已受理)
  • submit_time(工单提交时间)
  • images_path(用户上传照片的路径)
  • admin_id(受理工单的管理员编号)
  • user_name(报修人姓名)
  • user_phone(报修人电话)
  • user_email(报修人邮箱)

(四)历史工单complete_order

历史工单的作用是记录历史工单,当管理员完成维修后,就会把维修工单上的部分信息迁移到历史工单中,由于历史工单中没有报修人相关的字段,以保证报修人的隐私问题。

  • order_id(历史工单ID)
  • problem(工单问题)
  • remark(工单备注)
  • admin_id(接手管理员编号)
  • complete_time(完成工单日期)
  • image_path(用户上传图片路径)
  • class_id(所属实训室ID)
  • building_id(所属实训楼ID)
  • computer_number(电脑编号)

(五)实训室class

实训室表用于记录所有实训室信息,如所属实训楼,拥有的电脑数,可用、不可用的电脑数。

  • class_id(实训室ID)
  • class_name(实训室名称)
  • building_id(实训楼ID)
  • computer_total(实训室电脑总数)
  • computer_enable(实训室可用电脑数)
  • computer_disable(实训室不可用电脑数)

(六)实训楼building

实训楼表用于积极记录实训楼所有信息

  • building_id(实训楼ID)
  • building_name(实训楼名称)

2.数据库关系E-R图

在这里插入图片描述




    到这里,数据库的数据表设计已经完成了,如果您对次篇文章有疑问,可以在文章下方留言,谢谢您的阅读。如对【机房报修管理系统】系列文章有兴趣,可以关注或收藏我的文章,您的支持是我最大的动力,我会尽快推出下一期内容,敬请期待。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值