因为创新课程管理系统这一个项目,是一个从无到有,没有标准可以去参考的一个项目。
这个项目专门针对该课程进行设计,所以需求的功能点很多,因此数据库有多次设计,更改再推翻重新设计再更改。
因为用户有多个类型,系统管理员,学校管理员,老师,助教,学生。
一开始的时候想把每一个都单独设计为一个表,然后登陆的时候选择身份后直接在对应的表里面进行查找即可。所以当时的用户表是如下的:
后来经过小班讨论课,又觉得可以把所有的用户全部放在一个表里面,即一个User表里面有所有用户的资料,不过这样会导致许多字段的空的。
所以最后再向老师请教完之后,并且了解了更多的数据库设计相关知识后,判断用户里面极大部分为学生,而学生和助教的字段又大部分会相同,所以学生和助教做一张表,只需要加一个类别字段区分是学生还是助教,而其他的用户都可以另外放一张表。
因为功能点比较复杂,虽然在我们这一期的项目中不需要全部实现,但是数据库却需要全部先设计出来。最终的结果如下:
数据库设计心得:设计数据库的话,如果是比较简单的,比如说只有三,四个表,那还不太会出现漏洞,而对于比较复杂的数据关系,那么设计的时候往往就会出现顾首不顾尾的问题。而且还需要考虑的就是字段的域约束,是否能为空等问题。
所以最后慢慢发现设计数据库的主要的方式还是跟随着业务逻辑,尤其是将自己代入到用户中去。假设自己是某一类用户,然后对于我这个用户,我需要做一些什么样的操作?这一些操作的数据是否要保留下来?保留下来的意义在哪里?只要理清楚了这三个问题,那么对于自己这个用户类型就可以有一个比较清晰的数据库存储数据的思路。
原文地址:https://www.cnblogs.com/hbxloveyuu/p/10013194.html
时间: 2024-10-10 10:35:07