创新课程管理系统数据库设计心得

本文详细介绍了创新课程管理系统从无到有的数据库设计过程,包括针对不同用户类型(系统管理员、学校管理员、老师、助教、学生)的表设计决策,以及如何跟随业务逻辑设计数据库,确保满足复杂功能点的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

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

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

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

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

 

转载于:https://www.cnblogs.com/hbxloveyuu/p/10013194.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值