数据库课程设计快餐订餐系统数据库设计.docx

上传人:夜** 文档编号:85634333 上传时间:2023-04-12 格式:DOCX 页数:20 大小:220.61KB
返回 下载 相关 举报
数据库课程设计快餐订餐系统数据库设计.docx_第1页
第1页 / 共20页
数据库课程设计快餐订餐系统数据库设计.docx_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《数据库课程设计快餐订餐系统数据库设计.docx》由会员分享,可在线阅读,更多相关《数据库课程设计快餐订餐系统数据库设计.docx(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、内蒙古科技大学本科生课程设计说明书题目: 数据库课程设计 快餐预订系统名:学号:专业: 计算机科学与技术班级: 11-3 班师:名目名目01. 需求分析21.1 课程设计题目要求21.2 系统分析21.2.1 系统开发目的21.2.2 系统分角色功能分析22. 概念构造设计32.1 数据流设计32.1.1 数据流顶层图42.1.2 数据流一层图42.2 E-R图设计42.2.1 实体间总 E-R 图52.2.2 实体分 E-R 图53. 规律构造设计93.1 关系构造设计93.1.1 客户表 client93.1.2 职员表 staff93.1.3 分店表 store103.1.4 食品表 f

2、ood113.1.5 配料表 flavor123.1.6 食品-配料关系表 ffr123.1.7 套餐表 meal133.1.8 订单表 order133.1.9 销售统计表 sell144. 物理设计154.1 索引存取154.1.1 索引定义154.1.2 建立索引154.2 聚簇索引154.2.1 聚簇索引定义154.2.2 建立聚簇索引155. 数据库设计总结165.1 理解三个范式, 正确生疏数据冗余165.2 正确处理实体间多对多的关系16第 1 页1. 需求分析1.1 课程设计题目要求客户需要注册之后才能登陆。客户需要输入密码正确之前方可登陆系统, 然后后才可以订、扫瞄、及取消订

3、单。客户当拿到食物之后才付款 可以不用考虑付款问题 客户可以选择哪一个分店来为他送订的东西。快餐店出售套餐 两种食品组合或三种食品组合, 套餐包括两菜 或三菜 另外加米饭和当天供给的汤。用户可以自行选择由哪几样菜组成套餐。 样菜可以另附一种或多种调料。 个订单可以包括任意的菜, 附加饮料。经经理同意, 某些食品可以打折。1.2 系统分析1.2.1 系统开发目的快餐订餐系统是为了便利快餐公司更有利把握快餐市场, 并且为消费者供给更便利的效劳而设计开发的。快餐订餐系统可为快餐公司向餐饮消费者供给更加便利的餐饮效劳, 也可为消费者供给更加明细的消费效劳。1.2.2 系统分角色功能分析快餐订餐系统使用

4、用户的角色分为:客户,送货员 职员,餐饮经理 职员。1. 客户功能1) 注册订餐客户账号。注册账号并完善个人信息。2) 订制套餐订单。套餐可选择分店设置套餐优待, 也可依据个人喜好选择宠爱食物构成套餐。客户可以选择同种食物的不同口味。3) 客户在订单中须写清送餐地址、个人有效联系方式, 以便快餐准时送达。4) 客户收到订餐后再付费。5) 客户可对送餐效劳进展满足度评价。6) 客户可取消个人快餐订单。2. 餐饮经理功能1) 经理可扫瞄客户及所属分店职员信息。2) 经理可取消过期 一天以上 的订单信息。3) 经理可设定所属分店优待套餐信息。4) 经理可对局部设置食物价格折扣。3. 送餐员功能1)

5、送餐员可扫瞄所属分店订单信息。2. 概念构造设计2.1 数据流设计2.1.1 数据流顶层图2.1.2 数据流一层图2.2 E-R图设计第 4 页2.2.1 实体间总 E-R 图2.2.2 实体分 E-R 图第 5 页第 6 页第 7 页第 8 页3. 规律构造设计3.1 关系构造设计注: 使用数据库为 MySQL数据库3.1.1 客户表 client1) 创立数据表CREATE TABLEfastfood.client(client_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,client_nick VARCHAR( 20 ) NOT NULL ,c

6、lient_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) ENGINE = MYISAM2) 关系数据表字段client_idclient_nickclient_pwdclient_nameclient_telclient_addclient_time类INTVARCHAVARCHAVARCHAVARCHAVARCHA

7、R(TIME型R( 20 )R( 20 )R( 20 )R( 20 )1000 )备PRIM客 户 登 陆客 户 登 录客户姓名客 户 联 系客 户 联 系客 户注ARY名密码 地址注 册KEY时间3) 数据表说明i. 客户表是记录客户信息的数据表。ii. client_id为客户数据表的主键。iii. 已注册客户 在客户表中存在的用户 可以对个人信息进展修改。iv. 分店经理可扫瞄所属分店客户信息。v. 送餐员没有对客户表操作的权限。3.1.2 职员表 staff1) 创立数据表CREATE TABLEfastfood.staff第 10 页(staff_id INT NOT NULL AU

8、TO_INCREMENT PRIMARY KEY ,staff_num VARCHAR( 20 ) NOT NULL ,staff_pwd VARCHAR( 20 ) NOT NULL ,staff_name VARCHAR( 20 ) NOT NULL ,staff_tel VARCHAR( 20 ) NOT NULL ,staff_store VARCHAR( 1000 ) NOT NULL ,staff_group VARCHAR( 20 ) NOT NULL) ENGINE = MYISAM2) 关系数据表字段staff_idstaff_numstaff_pwdstaff_namest

9、aff _telstaff _addstaff_group类INTVARCHAVARCHAVARCHAVARCHAVARCHARVARCHA型R( 20 )R( 20 )R( 20 )R( 20 )( 1000 )R( 20 )备PRIM职员登陆职员登录职员姓名职员联系职 员 所 属职员治理注ARYKEY名密码 分店组3) 数据表说明i. 职员表是记录分店职员信息的数据表。ii. staff_id是职员表的主键。iii. 职员工号为其系统登录名。iv. 分店经理可对其所属分店的员工信息进展修改。v. 分店员工只可查看自己所属分店的员工信息。vi. 客户不能对职员表进展任何操作。3.1.3 分店

10、表 store1) 创立数据表CREATE TABLEfastfood.store (store_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,store_name VARCHAR( 1000 ) NOT NULL ,store_add VARCHAR( 1000 ) NOT NULL ,store_tel VARCHAR( 20 ) NOT NULL) ENGINE = MYISAM字段store_idstore_namestore_addstore_tel2) 关系数据表类型备注INTPRIMARY KEYVARCHAR( 1000 )分店名称VA

11、RCHAR( 1000 )分店地址VARCHAR( 20 )分店 3) 数据表说明i. 分店表是记录快餐店各分店信息的数据表。ii. store_id是分店表的主键。iii. 经理可扫瞄各店信息。经理可对其所属分店信息进展修改。iv. 送餐员可扫瞄各店信息。v. 客户可扫瞄各店信息。3.1.4 食品表 food1) 创立数据表CREATE TABLEfastfood.food (food_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,food_name VARCHAR( 20 ) NOT NULL ,food_info VARCHAR( 1000 )

12、NOT NULL ,food_price FLOAT NOT NULL ,food_type VARCHAR( 20 ) NOT NULL ,food_discount FLOAT NOT NULL) ENGINE = MYISAM2) 关系数据表字段food_idfood_namefood_infofood_pricefood_typefood_discount类型INTVARCHAR(20 )VARCHAR(000 )1FLOATVARCHAR(20 )FLOAT备PRIMA食物名称食物信息食 物 价食物类型食物折扣注RYKEY格3) 数据表说明i. 食物表是记录快餐店各种食物信息的数据表

13、。ii. food_id是食物表主键。iii. 经理可对食物表进展添加、删除、修改的操作。iv. 送餐员可扫瞄该表信息。v. 客户可扫瞄该表信息。3.1.5 配料表 flavor1) 创立数据表CREATE TABLEfastfood.flavor (flavor_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,flavor_name VARCHAR( 20 ) NOT NULL) ENGINE = MYISAM字段类型备注flavor_idINTPRIMARY KEYflavor_nameVARCHAR( 20 )配料名2) 关系数据表3) 数据表说明

14、i. 配料表是记录快餐各种食物所添加配料的数据表。ii. flavor_id是配料表的主键。iii. 经理可对配料表进展添加、修改等操作。iv. 客户可扫瞄并依个人口味选择所选食物的配料。3.1.6 食品-配料关系表 ffr1) 创立数据表CREATE TABLEfastfood.ffr (ffr_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,flavor_id INT NOT NULL ,food_id INT NOT NULL) ENGINE = MYISAM字段类型备注ffr_idINTPRIMARY KEYfood_idINT食物 idflav

15、or_idINT配料 Id2) 关系数据表3) 数据表说明i. 食物-配料关系表是记录食物和配料对应关系表。ii. ffr_id是食物- 配料表的主键。iii. 经理可对该表进展添加、修改的操作, 设定各种食物配料对应关系。iv. 送餐员和客户无操作权限。3.1.7 套餐表 meal1) 创立数据表CREATE TABLEfastfood.meal (meal_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,meal_name VARCHAR( 20 ) NOT NULL ,food_id INT NOT NULL) ENGINE = MYISAM字段类

16、型备注meal_idINTPRIMARY KEYmeal_nameVARCHAR( 20 )套餐名称food_idINT套餐中食物 id2) 关系数据表3) 数据表说明i. 套餐表是记录快餐店推出的优待套餐的记录表。 非实体表 ii. meal_id是套餐表的主键。iii. 经理可对套餐表进展修改、添加等操作。iv. 客户可扫瞄套餐信息。客户也可依据个人喜好添加个人套餐信息。3.1.8 订单表 order1) 创立数据表CREATE TABLEfastfood.order (order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,client_id

17、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) ENGINE = MYISAM2) 关系数据表字段order_idclient_idstore_idstaff_idorder_stimeorder_evaluateor

18、der_tpriceorder_statemeal_id类INTINTINTINTTIMEVARCHARFLOATVARCHARINT型备 订 单 客 户 分 店 送餐注 号idid员 id快餐到达时间( 100 )效劳评价( 100 )订 单 支 订单状态付金额套餐id3) 数据表说明i. 订单记录表是记录用户订单信息的数据表。ii. order_id是订单表的主键。iii. 经理可对订单表进展修改操作。iv. 送餐员可扫瞄订单表。v. 客户可添加、取消该订单。3.1.9 销售统计表 sell1) 创立数据表CREATE TABLEfastfood.sell (sell_id INT NOT

19、 NULL AUTO_INCREMENT PRIMARY KEY ,client_id INT NOT NULL ,order_id INT NOT NULL ,food_id INT NOT NULL ,price FLOAT NOT NULL) ENGINE = MYISAM2) 关系数据表字段sell_idclient_idorder_idfood_idprice类型INTINTINTINTFLOAT备注PRIMARYKEY订餐人 id订单 id食物 id食物单价3) 数据表说明i. 销售统计表是记录客户消费信息的数据表。ii. sell_id是该表的主键。iii. 客户可在定制订单之后

20、扫瞄该信息。iv. 经理可扫瞄该表, 统计所属分店的销售业绩。4. 物理设计4.1 索引存取4.1.1 索引定义索引是对数据库表中一列或多列的值进展排序的一种构造,例如 staff表的姓 name 列。假设要按姓查找特定职员,与必需搜寻表中的全部行相比, 索引会帮助您更快地获得该信息。在数据库关系图中, 可以在选定表的“ 索引/ 键” 属性页中创立、编辑或删除每个索引类型。当保存索引所附加到的表,或保存该表所在的关系图时, 索引将保存在数据库中。4.1.2 建立索引在快餐店经理和送餐员查询订单表时, 经理和送餐员只须查询自己所在分店的订单。故可在 order 表 store 表 的 store

21、_id 分店 id 属性上建立索引。方法: create index store_id on order store_id4.2 聚簇索引4.2.1 聚簇索引定义聚簇索引确定表中数据的物理挨次。 聚簇索引类似于 簿, 后者按姓氏排列数据。由于聚簇索引规定数据在表中的物理存储挨次, 因此一个表只能包含一个聚簇索引。但该索引可以包含多个列 组合索引,就像 簿按姓氏和名字进展组织一样。汉语字典也是聚簇索引的典型应用, 在汉语字典里, 索引项是字母+声调, 字典正文也是依据先字母再声调的挨次排列。4.2.2 建立聚簇索引订餐者在查询快餐店所供给的食品时, 是依据食品名称查询的。 故可在food 表的

22、food_name 食品名称 属性上建立聚簇索引。方法: create cluster indexfood_nameon food food_name5. 数据库设计总结5.1 理解三个范式, 正确生疏数据冗余在本次数据库设计过程中, 我深刻体会到范式化对数据库设计的重要性。例如, 在第一次的数据库设计中有很多字段会造成数据冗余, 会造成系统性能下降。因而就必需理解三个范式的根本意义。通俗地理解三个范式, 对于数据库设计大有好处。 在数据库设计中, 为了更好地应用三个范式,就必需通俗地理解三个范式 ( 通俗地理解是够用的理解, 并不是最科学最准确的理解):第一范式:1NF 是对属性的原子性约束

23、,要求属性具有原子性,不行再分解;其次范式:2NF 是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;第三范式:3NF 是对字段冗余性的约束,即任何字段不能由其他字段派生出来, 它要求字段没有冗余。主键与外键在多表中的重复消灭, 不属于数据冗余, 这个概念必需清楚。非键字段的重复消灭, 才是数据冗余! 而且是一种低级冗余, 即重复性的冗余。高级冗余不是字段的重复消灭, 而是字段的派生消灭。5.2 正确处理实体间多对多的关系假设两个实体之间存在多对多的关系, 则应消退这种关系。消退的方法是, 在两者之间增加第三个实体。这样, 原来一个多对多的关系, 现在变为两个一对多的关系。 要将原来两个实体的属性合理地安排到三个实体中去。这里的第三个实体,实质上是一个较简单的关系,它对应一张根本表。一般来讲, 数据库设计工具不能识别多 对多的关系, 但能处理多对多的关系。比方,食物和配料之间就是多对多的关系,所以应建立食品-配料关系表。第 17 页第 18 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com