[php] {项目} UpWork - 二、数据库

前言

数据库是这个项目几乎所有数据/信息的来源。

在学习数据库之前,作业的发布是手动录入php代码的(死值),上交情况也是通过检查上传文件夹里的文件是否存在来判断的。以前也想过用txt文件记录数据,但是可以预见读取数据的时候会很麻烦。

但现在SQL Server 已经快学完了,即使MariaDB和SQL Server 的语法有一定的出入,我也能看出来介入数据库是一劳永逸的事。

设计

设计好数据库会让一劳永逸事半功倍。

使用场景

这个项目的用户场景有:

  1. 学生作业的查询、上交
  2. 学生对上交文件的查询、下载、替换、删除等处理。
  3. 我对作业的增删改查,文件的批量处理

E-R 图

因此可以整理设计出这样的E-R图:

在这里插入图片描述

UpWork - ER图 最新版

根据E-R图得出这样的表:

  • 作业表 :作业名字,科目,起始,结束,课件,备注,是否需要上传。
  • 文件表:文件名,文件的路径,对应work的id,文件的状态。
  • 学生表:学号,姓名。
  • 上传日志表:上传的文件名,日期,上传人,作业id

Coding

首先得设置默认字符串编码,不然插入数据的时候会报错

MariaDB修改默认字符集

当然,在上一章中我是先创建了yeek数据库,设置默认值并不会改变已有的数据库,参考上面的博客中的第5点,执行下面这句就可以改变数据库的字符串编码了。

ALTER yeek database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

然后依据表写的建表代码


CREATE TABLE `upwork_work`
(
    `id`          int(10)     NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'uid',
    `name`        varchar(30) NOT NULL COMMENT '作业名',
    `subject`     varchar(20) NOT NULL COMMENT '科目',
    `start`       date                 DEFAULT NULL COMMENT '开始日期',
    `end`         date                 DEFAULT NULL COMMENT '上交日期',
    `annex`       varchar(20)          DEFAULT NULL COMMENT '课件名',
    `remarks`     text COMMENT '备注',
    `need_upload` bit(1)      NOT NULL DEFAULT b'0'
) COMMENT ='作业表';


CREATE TABLE `upwork_UploadLog`
(
    `id`       int(10)      NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'uid',
    `fileName` varchar(200) NOT NULL COMMENT '文件名',
    `date`     datetime     NOT NULL COMMENT '上传日期',
    `uploader` varchar(50) COMMENT '上传人',
    `workId`   varchar(50)  NOT NULL COMMENT '作业id'
) COMMENT ='upwork上传日志';



CREATE TABLE `upwork_student`
(
    `id`        int(10)     NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'uid',
    `studentId` varchar(8)  NOT NULL UNIQUE KEY COMMENT '学号',
    `name`      varchar(30) NOT NULL UNIQUE KEY COMMENT '姓名'
) COMMENT ='学生表';

CREATE TABLE upwork_file
(
    id         int(10)     not null auto_increment primary key comment 'uid',
    workId     int(10)     not null comment '对应work的id',
    fileName   varchar(50) not null comment '文件名',
    fileDir    varchar(50) not null comment '文件路径',
    `fileSize` varchar(50) NOT NULL COMMENT '文件大小',
    recycle    bit(1)      not null default false comment '1表示将要回收'
) COMMENT '文件表';


嗯,建表成功。

建表成功

后言

建表也结束了,接下来就是实现UML类图中的类和简单的网页设计了。

我是Moreant,我们下一篇 WorkInfo类 见~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值