一.团队介绍
团队名称:绝不摆烂队
团队成员:邹欣怡(PM)杨秀珍 陈雪萍 赵鋆 洪冰儿
团队项目:岳麓书院知识管理系统
项目指导老师:彭鹏
二.项目简介
我国文化源远流长,其中书院数量更是数不胜数,纸质书籍查找难度大,可阅读性不强使得书院资料整理的数字化成为趋势。随着当今技术的进步,人们对实现书院信息数字化查询的需求日渐增长。
本项目研究的目的是为了解决书院内人工标注书院信息难度大的问题,为岳麓书院人员以及其他用户提供数字化整理查询书院信息的系统平台。
三.ER图
四.逻辑结构设计
五.数据库设计之初出现的问题
1.字段冗余
在数据库设计之初,我们在每张表里都加上了create_time,update_time,create_user,update_user,is_deleted字段,结果在数据库评审的时候,老师说我们这些字段冗余,有的表确实应该存在,比如我们的修改记录表t_change_item需要指导修改的具体时间,其他比如书院表t_academy就没有必要加上这五个字段。所以我们又做了调整,仅在几个表中加上了需要的字段。
2.不符合范式
在书院表中,我们原本思考在每个书院后添加一个地点字段province,方便后续查询。我们的项目指导老师彭鹏说这不符合第三范式,因为我们的固定条目字段有书院的地点,然后学姐提议可以加一个视图来进行查询。
3.加入书院固定条目表
对于书院地点,我表示如果修改了提取出来的书院条目,那么导航栏这些不都会相应改变吗。彭鹏老师提议加入一个书院固定条目表,就是后来的t_fixed_item,在前台对这个表的内容不进行修改,但是对于后来新增的条目可以进行修改。这样子就可以保证书院地点的不变性,不过也存在提取出来的内容有错误却无法修改的可能性。
六.数据库设计心得
1.按模块划分
我们的项目在数据库方面不是特别复杂,按照模块划分为了书院和论坛两个模块。其中书院模块是我们的核心功能,主要有书院表,书院固定条目表,书院条目表和修改表,业务功能是进行书院条目的增删改查,书院语录的展示等。论坛模块是附加功能,主要是在我们的系统中给浏览者一个沟通交流的空间,大家可以在里面自由发言,分享自己的书院见闻等。
2.数据库设计遵循设计原则
首先是数据库表的命名,字段的命名,这些都有一定的规则需要遵循,比如我们在我们的代码里采用了驼峰映射,数据库的字段名xx_yy就可以根实体的属性xxYY对应起来,所以设计时一定要遵循设计原则。
其次是数据库范式的遵循。上面提到过,我们的书院表没有遵守第三范式,可能起初看起来觉得没有问题,但是后续肯定会发生意料之外的错误,所以为了避免此类错误,一开始设计的时候就应该遵循范式。
3.外键约束
数据库的外键约束强制我们不能随意对数据库的表进行操作,而且在删除某个字段的时候,必须先要删除有外键指向这个字段主键的那些其他表的字段才可以删除。在我们写注销用户时,看似对一个表操作,其实对很多表都进行了操作,格外需要注意。
4.勤于和老师沟通
我们的指导老师给予了我们很大的帮助,比如第三范式没有遵循、书院语录应该采用text的格式、加入书院固定条目表等。勤于和老师沟通能够在自己的发现盲区发现问题,提高开发效率。
标签:范式,数据库,书院,条目,字段,设计,心得,我们 From: https://www.cnblogs.com/hnuzxy/p/16857448.html