博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创新课程管理系统数据库设计心得
阅读量:5292 次
发布时间:2019-06-14

本文共 741 字,大约阅读时间需要 2 分钟。

因为创新课程管理系统这一个项目,是一个从无到有,没有标准可以去参考的一个项目。

这个项目专门针对该课程进行设计,所以需求的功能点很多,因此数据库有多次设计,更改再推翻重新设计再更改。

因为用户有多个类型,系统管理员,学校管理员,老师,助教,学生。

一开始的时候想把每一个都单独设计为一个表,然后登陆的时候选择身份后直接在对应的表里面进行查找即可。所以当时的用户表是如下的:

后来经过小班讨论课,又觉得可以把所有的用户全部放在一个表里面,即一个User表里面有所有用户的资料,不过这样会导致许多字段的空的。

所以最后再向老师请教完之后,并且了解了更多的数据库设计相关知识后,判断用户里面极大部分为学生,而学生和助教的字段又大部分会相同,所以学生和助教做一张表,只需要加一个类别字段区分是学生还是助教,而其他的用户都可以另外放一张表。

因为功能点比较复杂,虽然在我们这一期的项目中不需要全部实现,但是数据库却需要全部先设计出来。最终的结果如下:

 

 

数据库设计心得:设计数据库的话,如果是比较简单的,比如说只有三,四个表,那还不太会出现漏洞,而对于比较复杂的数据关系,那么设计的时候往往就会出现顾首不顾尾的问题。而且还需要考虑的就是字段的域约束,是否能为空等问题。

        所以最后慢慢发现设计数据库的主要的方式还是跟随着业务逻辑,尤其是将自己代入到用户中去。假设自己是某一类用户,然后对于我这个用户,我需要做一些什么样的操作?这一些操作的数据是否要保留下来?保留下来的意义在哪里?只要理清楚了这三个问题,那么对于自己这个用户类型就可以有一个比较清晰的数据库存储数据的思路。 

 

转载于:https://www.cnblogs.com/beihuan918/p/9988577.html

你可能感兴趣的文章
【python】--迭代器生成器装饰器
查看>>
Pow(x, n)
查看>>
安卓当中的线程和每秒刷一次
查看>>
MySQL Proxy
查看>>
关于Vue的组件的通用性问题
查看>>
随机颜色值
查看>>
每日一库:Modernizr.js,es5-shim.js,es5-safe.js
查看>>
目录相关的操作
查看>>
解决虚拟机vmware安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题...
查看>>
C++----练习--引用头文件
查看>>
11.基本包装类型
查看>>
ajax连接服务器框架
查看>>
wpf样式绑定 行为绑定 事件关联 路由事件实例
查看>>
利用maven管理项目之POM文件配置
查看>>
用HttpCombiner来减少js和css的请问次数
查看>>
FUSE-用户空间文件系统
查看>>
将tiff文件转化为jpg文件并保存
查看>>
ubuntu 16.04 开机脚本
查看>>
 VS2012 C#调用C++ dll
查看>>
TCL:表格(xls)中写入数据
查看>>