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

上传人:小飞机 文档编号:2792896 上传时间:2023-02-25 格式:DOC 页数:20 大小:193.50KB
返回 下载 相关 举报
数据库课程设计快餐订餐系统数据库设计.doc_第1页
第1页 / 共20页
数据库课程设计快餐订餐系统数据库设计.doc_第2页
第2页 / 共20页
数据库课程设计快餐订餐系统数据库设计.doc_第3页
第3页 / 共20页
数据库课程设计快餐订餐系统数据库设计.doc_第4页
第4页 / 共20页
数据库课程设计快餐订餐系统数据库设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《数据库课程设计快餐订餐系统数据库设计.doc》由会员分享,可在线阅读,更多相关《数据库课程设计快餐订餐系统数据库设计.doc(20页珍藏版)》请在三一办公上搜索。

1、精选优质文档-倾情为你奉上内蒙古科技大学本科生课程设计说明书题 目:数据库课程设计 快餐预订系统学生姓名:李文静学 号:专 业:计算机科学与技术班 级:11-3班指导教师:丁雨目录1需求分析1.1 课程设计题目要求客户需要注册之后才能登陆。客户需要输入密码正确之后方可登陆系统,然后后才可以订、浏览、及取消订单。客户当拿到食物之后才付款(可以不用考虑付款问题)客户可以选择哪一个分店来为他送订的东西。快餐店出售套餐(两种食品组合或三种食品组合),套餐包括两菜(或三菜)另外加米饭和当天供应的汤。用户可以自行选择由哪几样菜组成套餐。一样菜可以另附一种或多种调料。一个订单可以包括任意的菜,附加饮料。经经

2、理同意,某些食品可以打折。1.2 系统分析1.2.1 系统开发目的快餐订餐系统是为了方便快餐公司更有利把握快餐市场,并且为消费者提供更便利的服务而设计开发的。快餐订餐系统可为快餐公司向餐饮消费者提供更加便利的餐饮服务,也可为消费者提供更加明细的消费服务。1.2.2 系统分角色功能分析快餐订餐系统使用用户的角色分为:客户,送货员(职员),餐饮经理(职员)。1. 客户功能1) 注册订餐客户账号。注册账号并完善个人信息。2) 订制套餐订单。套餐可选择分店设置套餐优惠,也可根据个人喜好选择喜爱食物构成套餐。客户可以选择同种食物的不同口味。3) 客户在订单中须写清送餐地址、个人有效联系方式,以便快餐及时

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图3. 逻辑结构设计3.1 关系结构设计注:使用数据库为MySQL数据库3.1.1 客户表client1) 创建数据表

4、CREATE TABLE fastfood.client (client_id INT NOT NULL AUTO_INCREMENT 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) ENGINE = MYIS

5、AM2) 关系数据表字段client_idclient_nickclient_pwdclient_nameclient_telclient_addclient_time类型INTVARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 1000 )TIME备注PRIMARY KEY客户登陆名客户登录密码客户姓名客户联系电话客户联系地址客户注册时间3) 数据表说明i. 客户表是记录客户信息的数据表。ii. client_id为客户数据表的主键。iii. 已注册客户(在客户表中存在的用户)可以对个人信息进行修改。iv. 分店经理可浏览

6、所属分店客户信息。v. 送餐员没有对客户表操作的权限。3.1.2 职员表staff 1) 创建数据表CREATE TABLE fastfood.staff(staff_id INT NOT NULL AUTO_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 NUL

7、L ,staff_group VARCHAR( 20 ) NOT NULL) ENGINE = MYISAM2) 关系数据表字段staff_idstaff_numstaff _pwdstaff_namestaff _telstaff _addstaff_group类型INTVARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 20 )VARCHAR( 1000 )VARCHAR( 20 )备注PRIMARY KEY职员登陆名职员登录密码职员姓名职员联系电话职员所属分店职员管理组3) 数据表说明i. 职员表是记录分店职员信息的数据表。ii. staff_

8、id是职员表的主键。iii. 职员工号为其系统登录名。iv. 分店经理可对其所属分店的员工信息进行修改。v. 分店员工只可查看自己所属分店的员工信息。vi. 客户不能对职员表进行任何操作。3.1.3 分店表store 1) 创建数据表CREATE TABLE fastfood.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 NUL

9、L) ENGINE = MYISAM2) 关系数据表字段store_idstore_namestore_addstore_tel类型INTVARCHAR( 1000 )VARCHAR( 1000 )VARCHAR( 20 )备注PRIMARY KEY分店名称分店地址分店电话3) 数据表说明i. 分店表是记录快餐店各分店信息的数据表。ii. store_id是分店表的主键。iii. 经理可浏览各店信息。经理可对其所属分店信息进行修改。iv. 送餐员可浏览各店信息。v. 客户可浏览各店信息。3.1.4 食品表food 1) 创建数据表CREATE TABLE fastfood.food(food_

10、id INT NOT NULL AUTO_INCREMENT 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) ENGINE = MYISAM2) 关系数据表字段food_idfood_namefood_infofood_pricefood_typefood_discount类型INTVARCHAR(

11、 20 )VARCHAR( 1000 )FLOATVARCHAR( 20 )FLOAT备注PRIMARY KEY食物名称食物信息食物价格食物类型食物折扣3) 数据表说明i. 食物表是记录快餐店各种食物信息的数据表。ii. food_id是食物表主键。iii. 经理可对食物表进行添加、删除、修改的操作。iv. 送餐员可浏览该表信息。v. 客户可浏览该表信息。3.1.5 配料表flavor 1) 创建数据表CREATE TABLE fastfood.flavor (flavor_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,flavor_name VARC

12、HAR( 20 ) NOT NULL) ENGINE = MYISAM2) 关系数据表字段flavor_idflavor_name类型INTVARCHAR( 20 )备注PRIMARY KEY配料名3) 数据表说明i. 配料表是记录快餐各种食物所添加配料的数据表。ii. flavor_id是配料表的主键。iii. 经理可对配料表进行添加、修改等操作。iv. 客户可浏览并依个人口味选择所选食物的配料。3.1.6 食品-配料关系表ffr 1) 创建数据表CREATE TABLE fastfood.ffr (ffr_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY

13、 ,flavor_id INT NOT NULL ,food_id INT NOT NULL) ENGINE = MYISAM2) 关系数据表字段ffr_idfood_idflavor_id类型INTINTINT备注PRIMARY KEY食物id配料Id3) 数据表说明i. 食物-配料关系表是记录食物和配料对应关系表。ii. ffr_id是食物-配料表的主键。iii. 经理可对该表进行添加、修改的操作,设定各种食物配料对应关系。iv. 送餐员和客户无操作权限。3.1.7 套餐表meal 1) 创建数据表CREATE TABLE fastfood.meal (meal_id INT NOT NU

14、LL AUTO_INCREMENT PRIMARY KEY ,meal_name VARCHAR( 20 ) NOT NULL ,food_id INT NOT NULL) ENGINE = MYISAM2) 关系数据表字段meal_idmeal_namefood_id类型INTVARCHAR( 20 )INT备注PRIMARY KEY套餐名称套餐中食物id3) 数据表说明i. 套餐表是记录快餐店推出的优惠套餐的记录表。(非实体表)ii. meal_id是套餐表的主键。iii. 经理可对套餐表进行修改、添加等操作。iv. 客户可浏览套餐信息。客户也可根据个人喜好添加个人套餐信息。3.1.8 订

15、单表order 1) 创建数据表CREATE TABLE fastfood.order (order_id INT NOT NULL AUTO_INCREMENT 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 ,me

16、al_id INT NOT NULL) ENGINE = MYISAM2) 关系数据表字段order_idclient_idstore_idstaff_idorder_stimeorder_evaluateorder_tpriceorder_statemeal_id类型INTINTINTINTTIMEVARCHAR( 100 )FLOATVARCHAR( 100 )INT备注订单号客户id分店id送餐员id快餐到达时间服务评价订单支付金额订单状态套餐id3) 数据表说明i. 订单记录表是记录用户订单信息的数据表。ii. order_id是订单表的主键。iii. 经理可对订单表进行修改操作。iv

17、. 送餐员可浏览订单表。v. 客户可添加、取消该订单。3.1.9 销售统计表sell1) 创建数据表CREATE TABLE fastfood.sell (sell_id INT NOT 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备注

18、PRIMARY KEY订餐人id订单id食物id食物单价3) 数据表说明i. 销售统计表是记录客户消费信息的数据表。ii. sell_id是该表的主键。iii. 客户可在定制订单之后浏览该信息。iv. 经理可浏览该表,统计所属分店的销售业绩。4. 物理设计4.1 索引存取4.1.1索引定义索引是对数据库表中一列或多列的值进行排序的一种结构,例如 staff 表的姓(name)列。如果要按姓查找特定职员,与必须搜索表中的所有行相比,索引会帮助您更快地获得该信息。在数据库关系图中,可以在选定表的“索引/键”属性页中创建、编辑或删除每个索引类型。当保存索引所附加到的表,或保存该表所在的关系图时,索引

19、将保存在数据库中。4.1.2 建立索引在快餐店经理和送餐员查询订单表时,经理和送餐员只须查询自己所在分店的订单。故可在order表(store表)的store_id(分店id)属性上建立索引。方法:create index store_id on order(store_id)4.2 聚簇索引4.2.1 聚簇索引定义聚簇索引确定表中数据的物理顺序。聚簇索引类似于电话簿,后者按姓氏排列数据。由于聚簇索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚簇索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。汉语字典也是聚簇索引的典型应用,在汉语字典里,索引项是字母+声

20、调,字典正文也是按照先字母再声调的顺序排列。4.2.2 建立聚簇索引订餐者在查询快餐店所提供的食品时,是根据食品名称查询的。故可在food表的food_name (食品名称)属性上建立聚簇索引。方法:create cluster index food_name on food(food_name)5. 数据库设计总结5.1 理解三个范式,正确认识数据冗余在本次数据库设计过程中,我深刻体会到范式化对数据库设计的重要性。例如,在第一次的数据库设计中有很多字段会造成数据冗余,会造成系统性能下降。因而就必须理解三个范式的根本意义。通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应

21、用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解):第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。主键与外键在多表中的重复出现,不属于数据冗余,这个概念必须清楚。非键字段的重复出现,才是数据冗余!而且是一种低级冗余,即重复性的冗余。高级冗余不是字段的重复出现,而是字段的派生出现。5.2 正确处理实体间多对多的关系若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。这样,原来一个多对多的关系,现在变为两个一对多的关系。 要将原来两个实体的属性合理地分配到三个实体中去。这里的第三个实体,实质上是一个较复杂的关系,它对应一张基本表。一般来讲,数据库设计工具不能识别多 对多的关系,但能处理多对多的关系。比如,食物和配料之间就是多对多的关系,所以应建立食品-配料关系表。专心-专注-专业

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号