赞
踩
本文详细介绍数据库从零到一的完整设计,因基于课程报告衍生,因此文章内容仅供举例参考,与商业应用有较大差距,适合学习数据库的同学参考学习使用(截至发文时笔者为大三CS学生一枚)。
总览整个课程报告的实验要求,本质上在于让每位同学了解数据库系统设计的过程,包括概念的诞生、数据库的设计、数据库的优化、数据库的具体实现。由此观之,项目之间环环相扣,具有层层递进的关系。根据这一理解,在实验初期,本人大致总结出数据库设计从零到一的相关流程,并按照该流程进行整体项目的推进,展示如下图所示。
在本课程报告中,Project1要求进行概念模式设计、数据库模式设计,Project2要求进行数据库模式优化,本人在实际推进过程中,首先进行了概念模式设计,然后根据所得的概念模式(即实体关系图)进行了数据库模式的设计与优化。因此在Project1中只涉及到概念模式的设计,Project2中将数据库模式的设计与优化进行合并阐述。Project3使用Python+Flask+mysql进行了数据库模式的实现和查询功能。在此特作说明。
随着社会的发展和生活节奏的加快,越来越多的人选择在外面工作或学习,导致他们没有足够的时间去烹饪食物。因此,外卖服务在市场上变得越来越受欢迎。为了满足人们对便捷餐饮服务的需求,外卖系统应运而生。为了给外卖系统提供可靠而有效的数据信息存储保障,我们根据外卖系统的运行方式和需求进行数据库搭建,并通过规范化提升数据存储效率和查询性能。
外卖系统中的关系错综负责,要想设计出一个逻辑清晰、性能良好的数据库,我们需要充分了解外卖系统的运作方式以及其中可能涉及到的各种主体,并列出主体之间可能存在的种种关系,根据实体和关系设计出相对应的ER图,之后再根据ER图(概念模式)转化出关系模式(数据库模式),并通过规范化设计优化数据库结构。
本项目中实现的外卖系统并非面面俱到,最终设计出的系统虽整体上能够走通外卖商品流通的流程,但是在一些细节方面还有很多不足,仍有非常多的优化空间。以下为本系统的需求描述。
根据外卖系统的常规运行逻辑,笔者建立了如下描述的一种简单运行场景:
从以上需求描述中,笔者总结出十一个实体类型,并大致概括出每个实体可能具有的实体属性,展示如下:
结合以上实体与需求分析,初步总结出实体之间的关系,陈列并说明如下:
根据以上实体和关系,初步绘制ER图的关系部分如下图所示。
(笔者使用Excalidraw完成ER图的绘制,Excalidraw是一款免费的画图Web网页,可以满足简单的绘图需求——
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。