数据库设计心得

Posted on 2018-11-19 15:15  derzom  阅读(388)  评论(2编辑  收藏  举报

项目数据库说明

我们的团队项目是基于微信平台的图书销售小程序。从数据库方面的需求分析到完整的数据库测试耗费了将近一周的时间。为了满足程序的功能需要,我们创建课用户表、订单表、点普表、图书-类型关系表等总计13个表,为了安全以及便于查询,同时使用了若干个视图和触发器。

数据库物理模型大致如下:

 

 

 

数据库设计流程

在对数据库进行设计的过程中,我们首先对项目的数据需求进行了分析,确定了需要使用的所有实体、各个实体的属性以及不同实体之间的联系;之后我们根据分析结果绘制了ER图,并确定了不同属性之间的关系所包含的属性;接着根据ER图绘制出了数据库的物理模型,在讨论后我们在物理模型的基础上又添加了视图和触发器,最后我们将数据库部署在了本地MySQL上并使用数据进行了测试。

 

数据库相关知识

设计数据库时,我们也涉及到了实体间的联系的处理:如卖家与店铺之间是一对一的联系、店铺与图书之间是一对多的联系,而图书与类型则是多对多的联系。我们也讨论了关于关系模式的范式与规范方面的问题,第一范式要求关系的每一个属性都是单值的,第二范式要求关系满足第一范式并且所有非主键属性均依赖于主键属性,第三范式要求关系满足第二范式且所有非主键属性之间不传递依赖于主键属性。为了满足三个范式,我们对数据库进行了多次修改,但同时由于订单的信息描述的是某一订单的确定值不能跟随其他实体的变化而变化,因此在订单详情页面我们使用了必要的冗余。本着尽量将避免使用触发器的原则我们将大部分可以不在数据库中处理的逻辑部分的代码放在了服务端,但仍使用了少量触发器来处理诸如删除字表字段时对父表的级联操作等逻辑。

 

心得

通过此次项目的数据库设计过程,加深了我们对数据库的认识,积累了数据库中视图、触发器等的使用经验。从讨论到绘制概念模型、物理模型、添加视图和触发器的过程也是我们数据库方面从理论到实践的过程,不断发现、解决问题也不断提高着我们对数据库知识的运用能力,同时也增强了我们的团队协作能力。