已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设计题目:快餐订购系统数据库设计班 级:计算机小组其他成员: 张传敬 康亚茹 林影指导老师:蔡卫东 2013年9月6日目录目录11需求分析21.1 概述及课程设计题目要求21.2 系统分析21.2.1 系统开发目的21.2.2 系统分角色功能分析22概念结构设计32.1 数据流设计32.1.1 数据流顶层图32.1.2 数据流一层图42.2 E-R图设计42.2.1 实体间总E-R图42.2.2 实体分E-R图53. 逻辑结构设计83.1 关系结构设计83.1.1 客户表client83.1.2 职员表staff93.1.3 分店表store103.1.4 食品表food103.1.5 配料表flavor113.1.7 套餐表meal123.1.8 订单表order124. 物理设计144.1 索引存取144.1.1索引定义144.1.2 建立索引145. 数据库设计总结155.1 理解三个范式,正确认识数据冗余155.2 正确处理实体间多对多的关系151需求分析1.1 概述及课程设计题目要求我负责逻辑结构设计,通过选用E-R图将实体-关系图转换为关系模型并进行必要的优化。客户需要在快餐订购系统先注册,进行客户的信息录入。注册完成之后,客户需要输入密码正确之后方可登陆系统,然后后才可以浏览、订购及取消业务。客户当拿到食物之后才付款。客户可以选择哪一个分店来为他送订的东西。快餐店出售套餐(两种食品组合或三种食品组合),套餐包括两菜(或三菜)另外加米饭和当天供应的汤。用户可以自行选择由哪几样菜组成套餐。一样菜可以另附一种或多种调料。一个订单可以包括任意的菜,附加饮料。经经理同意,某些食品可以打折。1.2 系统分析1.2.1 系统开发目的快餐订餐系统是为了方便快餐公司更有利把握快餐市场,并且为消费者提供更便利的服务而设计开发的。快餐订餐系统可为快餐公司向餐饮消费者提供更加便利的餐饮服务,也可为消费者提供更加明细的消费服务。1.2.2 系统分角色功能分析快餐订购系统使用用户分为:客户,送货员(职员),餐饮经理(职员)。1. 客户功能1) 注册订餐客户账号。注册账号并完善个人信息。2) 订制套餐订单。套餐可选择分店设置套餐优惠,也可根据个人喜好选择喜爱食物构成套餐。客户可以选择同种食物的不同口味。3) 客户在订单中须写清送餐地址、个人有效联系方式,以便快餐及时送达。4) 客户收到订餐后再付费。5) 客户可对送餐服务进行满意度评价。6) 客户可取消个人快餐订单。2. 餐饮经理功能1) 经理可浏览客户及所属分店职员信息。2) 经理可取消过期的订单信息。3) 经理可设定所属分店优惠套餐信息。4) 经理可对部分设置食物价格折扣。3. 送餐员功能1) 送餐员可浏览所属分店订单信息。2概念结构设计2.1 数据流设计2.1.1 数据流顶层图2.1.2 数据流一层图2.2 E-R图设计2.2.1 实体间总E-R图2.2.2 实体分E-R图职员Staff-iddStaff-nickStaff-nameeStaff-telStaff-fendianaddStaff-zhiwuStaff-pwd图2.2.2-2职员E-R图3. 逻辑结构设计3.1 关系结构设计3.1.1 客户表client1) 创建数据表CREATE TABLE client(client_id INT PRIMARY KEY ,client_nick VARCHAR( 20 ) NOT NULL ,client_pwd VARCHAR( 20 ) NOT NULL ,client_name VARCHAR( 20 ) NOT NULL ,client_tel VARCHAR( 20 ) NOT NULL ,client_add VARCHAR( 1000 ) NOT NULL ,client_time TIME NOT NULL); 2) 关系数据表字段client_idclient_nickclient_pwdclient_nameclient_telclient_addclient_time类型INTVARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 1000 )TIME备注主码客户登陆名客户登录密码客户姓名客户联系电话客户联系地址客户注册时间3.1.2 职员表staff 1) 创建数据表CREATE TABLE staff (staff_id INT PRIMARY KEY ,staff_nick VARCHAR( 20 ) NOT NULL ,staff_pwd VARCHAR( 20 ) NOT NULL ,staff_name VARCHAR( 20 ) NOT NULL ,staff_tel VARCHAR( 20 ) NOT NULL ,staff_fendianadd VARCHAR( 1000 ) NOT NULL ,staff_ zhiwu VARCHAR( 20 ) NOT NULL);2) 关系数据表字段staff_idstaff_nickstaff _pwdstaff_namestaff _telstaff _fendianaddstaff_zhiwu类型INTVARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 1000 )VARCHAR( 20 )备注主码职员登陆名职员登录密码职员姓名职员联系电话职员所属分店地址职员职务3.1.3 分店表store 1) 创建数据表CREATE TABLE store (store_id INT PRIMARY KEY ,store_name VARCHAR( 1000 ) NOT NULL ,store_add VARCHAR( 1000 ) NOT NULL ,store_tel VARCHAR( 20 ) NOT NULL) ;2) 关系数据表字段store_idstore_namestore_addstore_tel类型INTVARCHAR( 1000 )VARCHAR( 1000 )VARCHAR( 20 )备注主码分店名称分店地址分店电话3.1.4 食品表food 1) 创建数据表CREATE TABLE food (food_id INT PRIMARY KEY ,food_name VARCHAR( 20 ) NOT NULL ,food_info VARCHAR( 1000 ) NOT NULL ,food_price FLOAT NOT NULL ,food_type VARCHAR( 20 ) NOT NULL ,food_discount FLOAT NOT NULL) 2) 关系数据表字段food_idfood_namefood_infofood_pricefood_typefood_discount类型INTVARCHAR( 20 )VARCHAR( 1000 )FLOATVARCHAR( 20 )FLOAT备注主码食物名称食物信息食物价格食物类型食物折扣3.1.5 配料表flavor 1) 创建数据表CREATE TABLE flavor (flavor_id INT PRIMARY KEY ,flavor_name VARCHAR( 20 ) NOT NULL)2) 关系数据表字段flavor_idflavor_name类型INTVARCHAR( 20 )备注主码配料名3.1.6 套餐表meal 1) 创建数据表CREATE TABLE meal (meal_id INT PRIMARY KEY ,meal_name VARCHAR( 20 ) NOT NULL ,food_id INT NOT NULL,foreign key(food_id) references food(food_id);2) 关系数据表字段meal_idmeal_namefood_id类型INTVARCHAR( 20 )INT备注主码套餐名称套餐中食物id3.1.7 订单表order 1) 创建数据表CREATE TABLE order (order_id INT PRIMARY KEY ,client_id INT NOT NULL ,store_id INT NOT NULL ,staff_id INT NOT NULL ,order_stime TIME NOT NULL ,order_evaluate VARCHAR( 100 ) NOT NULL ,order_tprice FLOAT NOT NULL ,order_state VARCHAR( 100 ) NOT NULL ,meal_id INT NOT NULL,foreign key(client_id) references client (client_id),foreign key(store_id) references store (store_id),foreign key(staff_id) references staff (staff_id), foreign key(meal_id) references meal (meal_id) 2) 关系数据表字段order_idclient_idstore_idstaff_idorder_stimeorder_evaluateorder_tpriceorder_statemeal_id类型INTINTINTINTTIMEVARCHAR( 100 )FLOATVARCHAR( 100 )INT备注订单号主码客户id分店id送餐员id快餐到达时间服务评价订单支付金额订单状态套餐id字段sell_idclient_idorder_idfood_idprice类型INTINTINTINTFLOAT备注PRIMARY KEY订餐人id订单id食物id食物单价4. 物理设计4.1 索引存取4.1.1索引定义索引是对数据库表中一列或多列的值进行排序的一种结构,例如 staff 表的姓(name)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。在数据库关系图中,可以在选定表的“索引/键”属性页中创建、编辑或删除每个索引类型。当保存索引所附加到的表,或保存该表所在的关系图时,索引将保存在数据库中。4.1.2 建立索引在快餐店经理和送餐员查询订单表时,经理和送餐员只须查询自己所在分店的订单。故可在order表(store表)的store_id(分店id)属性上建立索引。方法:create index store_id on order(store_id)5. 数据库设计总结5.1 理解三个范式,正确认识数据冗余在本次数据库设计过程中,我深刻体会到范式化对数据库设计的重要性。例如,在第一次的数据库设计中有很多字段会造成数据冗余,会造成系统性能下降。因而就必须理解三个范式的根本意义。通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式第一范式:每一个分量必须是不可分割的数据项;第二范式:2NF是消除部分依赖;第三范式:3NF是消除传递依赖主键与外键在多表中的重复出现,不属于数据冗余,这个概念必须清楚。非键字段的重复出现,才是数据冗余!而且是一种低级冗余,即重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 学龄前自闭症自理进阶巩固课件
- 冀教四年级数学教案模板
- 工程部巡视检查管理制度
- 2026届福建省福安市环城区片区中考英语四模试卷含答案
- 2026 学龄前自闭症关键干预感统课件
- 数据分析报告撰写技巧及流程
- React框架应用经验与心得分享
- 2026 学龄前自闭症扣纽扣训练课件
- 孝敬父母的演讲稿(集锦15篇)
- 婚礼婚礼致辞
- 流行性腮腺炎诊疗指南
- 高考物理押计算大题《力学三大观点的综合应用计算题》含答案
- 2026年兰州大学管理岗招聘考试笔试试题(含答案)
- 肩关节松动术课件
- 2025年福建省高考生物真题卷含答案解析
- 茂名石油行业分析报告
- 10.2《在马克思墓前的讲话》教学课件2025-2026学年统编版高中语文必修下册
- 2025年河北联考音乐真题及答案
- 高技术企业技术创新的组织模式与激励机制
- 道路(普通)货物运输企业安全管理制度
- 2025年大学《统计学-多元统计分析》考试备考题库及答案解析
评论
0/150
提交评论