数据库系统原理-餐厅点菜管理系统_第1页
数据库系统原理-餐厅点菜管理系统_第2页
数据库系统原理-餐厅点菜管理系统_第3页
数据库系统原理-餐厅点菜管理系统_第4页
数据库系统原理-餐厅点菜管理系统_第5页
免费预览已结束,剩余25页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 目 录 1 系统需求分析 1 1 1 背景分析 1 1 2 系统目标 1 1 3 业务需求及处理流程 1 1 4 功能需求及数据分析需求 2 1 5 系统功能图 4 1 6 业务规则分析 5 1 7 数据约束分析 6 1 8 数据字典 7 2 数据库概念设计 9 2 1 定义实体集及属性 9 2 2 定义联系集及属性 10 2 3E R 模型设计 10 3 逻辑设计 13 3 1 关系设计 13 3 2 约束说明 14 4 数据库应用设计 17 4 1 数据库脚本及数据库安全性设计 18 4 2 数据库触发器设计 21 4 3 数据库存储过程的设计 23 5 物理设计 24 5 1 关系模式存储方式选择 24 5 1 1 索引存取方式 主要采用 B 树索引方法 24 5 1 2 聚簇索引方式 25 5 2 数据库的存储结构 25 5 2 1 数据库的存放位置 25 5 2 2 数据库的存放路径 25 1 1 系统需求分析 系统需求分析 希望通过调查 讨论 分析应用系统将要提供的功能及未 来数据库用户的数据需求 详细描述系统的实体 功能 规则与约束 为以后 的数据库系统的建立提供基础依据 1 1 背景分析 随着科技的发展 许多新的技术已经成功运用于我们的日常生活之中 衣 食 住 行 每样都搭上了科技的快车 民以食为天 吃饭可以说是人们日 常生活中最重要的一部分 人们生活水平的提高也使得大家不只局限在自己做 饭吃饭的情况 去餐厅 下馆子 的频率已经越来越高 可是目前人们在餐 厅吃饭点菜的形式还只局限于服务员人工点菜 不仅效率不高 菜品无法第一 时间报给厨师 对菜品的选择也只局限于服务员的推荐和自己个人的经验 而 且吃饭只求味觉上的享受完全或者很少考虑到科学和身体的需要 现在 所谓 的 吃饱吃好 从科学的角度来讲还只停留在吃饱的阶段 此种情况希望得到 改善的要求十分迫切 也将成为餐厅的一大卖点 1 2 系统目标 本系统立足于人们的饮食方面的需求 面向江西省南昌市连锁性质的 菜 肴故事 餐厅 对客人在餐厅内的点菜进行管理 本系统希望通过包间内电脑 自主点菜的方式为客人提供点菜服务 同时 本系统还可以根据客人的点菜记 录为菜品打分 根据不同客人对菜品的爱好进行推荐 根据客人不同的身体情 况提供配餐建议 以实现点菜的科学化 系统化和自动化 最大限度的服务于 客人和餐厅 减少餐厅的开支 提高餐厅的效率 为顾客提供方便 1 3 业务需求及处理流程 餐厅点菜的主要业务包括 所选菜单的生成和菜单处理的过程 如图 1 1 所示 2 图 1 1 点菜系统业务流程 1 4 功能需求及数据分析需求 功能需求分析将描述点菜系统提供的功能和服务 根据对流程的分析 通 过与餐厅服务人员 顾客的交流 点菜系统主要功能和数据需求包括 后台菜 品管理 顾客评价管理 前台点菜服务 菜单生成 3 1 4 1 菜品基本信息管理 提供菜品基本信息的录入 维护和查询功能 1 工作人员录入 更新和删除菜品的基本信息 包括菜品的主要原料 所 属菜系 价格 口味 热量 蛋白质含量等信息 2 菜品查询 系统提供多种方便快捷的方式进行菜品的检索 如可以输入 指定的关键词进行查询 也可以通过设定菜品的条件 如口味 菜系等单一或 者组合条件进行查询 1 4 2 顾客基本信息管理 提供顾客的信息的录入 更新功能 1 工作人员录入 删除 修改顾客的基本信息 包括顾客的姓名 生日 积分等信息 2 工作人员可以对顾客信息进行查询 3 系统对顾客的积分按消费情况进行自动修改 1 4 3 桌台基本信息管理 提供桌台基本信息的录入 维护和查询功能 1 工作人员录入桌台的基本信息 包括桌台编号 可容纳人数 等级 是 否被占用 2 工作人员更新 增加和删除桌台的基本信息 3 工作人员可以按照桌台的编号对其进行查询 1 4 4 科学套餐管理 1 工作人员负责录入科学套餐的信息 根据科学知识 将菜品根据不同人 群的不同要求 进行组合形成科学套餐供顾客选择 2 工作人员负责更新和删除套餐的基本信息 顾客可以根据编号 名称 功能对套餐的信息进行查询 1 4 5 菜单管理 提供菜单的生成 确认 修改和查询的功能 1 顾客菜单生成 所在房间顾客选择生成对应房间的菜单 2 顾客选菜 顾客可以根据自己的口味 喜好 菜品价格进行选菜 顾客 选定桌台之后 在终端机上开始选定菜品 顾客可以随意增加 删除和设定想 要的数量 并最后统计价格 3 菜单查询 顾客选菜结束后可以随时对所选菜单进行查询 4 删除和改选 选菜成功后 顾客可以在未处理菜单前对菜单内的菜品进 行修改和删除 4 5 菜单确认 本房间顾客自行确认菜单 确认后无法进行菜单修改 1 4 6 菜品推荐管理 1 同类菜品推荐 当顾客选择一道菜时 可以同时显示同类 口味相似菜 品 向顾客显示 2 自动菜品推荐 对顾客历史消费数据进行统计分析 针对顾客点菜风格 及人数显示推荐菜品 3 当季主打菜品推荐 向顾客推荐时下本店销量好的菜品 1 4 7 顾客评价管理 该服务应用于前台 操作对象为顾客 顾客可以根据自己意愿 对菜品进 行评价 1 菜品评价 顾客对菜品的评价 用文字描述 类似留言 2 菜品打分 顾客根据对菜品的印象对菜品进行打分 10 分制 1 5 系统功能图 餐厅点菜系统功能图 如图 1 2 所示 图 1 2 餐厅点菜系统功能图 1 6 业务规则分析 业务规则分析主要是分析数据之间的约束以及数据库约束 基于上述功能 需求 通过进一步了解 点菜系统业务规则如下 1 每个桌台有唯一的编号 由餐厅提前分配 5 2 每个菜品有唯一的编号标识 菜品编号由工作人员提前编排 3 每个科学配菜套餐都有唯一编号 由系统提前分配 4 对于已选择的套餐 顾客可以根据自己的需求可以调整菜单中的菜品 5 每个选定好的菜单编号唯一标识 菜单编号由系统按时间和桌台号联合 生成 6 菜单被接受处理前 顾客可以调整菜品 但是如果已经开始接受处理则 不能修改 7 同类菜品推荐规则 根据顾客所点菜品的主要原料中有三样相同 口味 相同 所属菜系相同 热量差距所点菜品的 15 以内 蛋白质含量差距所点菜 品的 20 以内的菜品 其中每满足以上一项条件菜品权值加 1 选取权值前三 大的菜品进行推荐 遇到已有菜品时自动排除 8 自动菜品推荐规则 根据历史记录直接生成一系列菜品 推荐规则为选 取往期所点菜品计算权值 计算规则与同类菜品推荐规则一样 然后从每样的 权值前三大菜品中选取一样 遇到已有菜品时自动排除 9 每个顾客有单独唯一的顾客编号 以及相应的消费积分 与等级分配 10 每个顾客可以发表多条评价 一个职员可回复多条评价 11 除前台以外的工作人员不能对产生的账单做任何操作 12 顾客对于每个菜品的评价不能超过 3 条 13 每条评价字数不得多于 50 14 顾客只能查看和更改自己的评价 15 顾客只能看到所有评价信息 不能更改其他桌台的信息 16 一份账单只能享受一次顾客优惠 并按可允许的最高优惠计算 17 每个桌台在同一时间最多只能有 1 个菜单 18 每个菜单只能生成一个账单 19 每张桌台的人数限制仅作参考 20 顾客积分 等级及相应的折扣规则如下 顾客等级积分条件享受折扣 黄金会员4000 积分 10009 5 折 铂金会员10000 积分 40009 折 钻石会员积分 100008 5 折 非会员积分 0 85 caloric and caloric 0 8 protein and protein 1 2 protein fetch next from cur tuijian into dishesno caloric protein end close cur tuijian deallocate cur tuijian end 2 菜单总价计算 建立存储过程 实现菜单的总价根据菜单明细表中的数据计算得出 代码如 下所示 23 create procedure p menusm as begin declare menuno char 12 declare cur menusum scroll cursor for select menuNo from menudetail open cur menusum fetch next from cur menusum into menuno while fetch status 0 begin update menu set menusum menudetail quantity menudetail price from menudetail a where a menuno menuno fetch next from cur menusum into menuno end close cur menusum deallocate cur menusum End 3 计算客户的积分 建立存储过程 根据顾客的菜单总价计客户的积分数 代码如下所示 create procedure p score as begin declare menusum numeric 7 2 memberno char 7 menuno char 12 declare cur score cursor for select menusum memberno from menu open cur score fetch next from cur score into menusum memberno menuno while fetch status 0 begin update member set membercount membercount convert int menusum from member a menu b where a memberno memberno and b menuno menuno fetch next from cur score into menusum memberno menuno end close cur score deallocate cur score end 24 5 物理设计物理设计 5 1 关系模式存储方式选择关系模式存储方式选择 为提高数据库数据的存取速度 而需要设置合适的存取方式 主要采用以 下两类存取方式 5 1 1 索引存取方式 主要采用索引存取方式 主要采用 B 树索引方法树索引方法 1 菜品表 Dishes 的数据量很大 而且其中大多数的数据都会经常在查询 中用到 所以根据它的特点建立索引 2 顾客表 Member 中的积分 memberCount 以及菜单表 Menu 中的总价 menuSum 经常在连接中出现 所以建立 B 树索引 5 1 2 聚簇索引方式聚簇索引方式 除特殊说明的表外 在其余各表主键上默认地建立聚簇索引 5 2 数据库的存储结构数据库的存储结构 为了提高系统整体性能 将数据库中的数据组织分为多个文件 分开进行 存储 5 2 1 数据库的存放位置数据库的存放位置 数据库中的数据组织一个 primary 文件进行存储 5 2 2 数据库的存放路径数据库的存放路径 在目前实验条件下 根据实验的实际需求 将各数据文件存储在以下路径中 set nocount on set dateformat ymd use master go if not exists select from syslogins where name user01 exec sp addlogin user01 user01 go create database 25 if exists select from sysdatabases where name OrderDB81 drop database MenuDB1 go create database MenuDB1 on primary name MenuDB1 filename f myWork MenuDB1 mdf size 1 maxsize 5 filegrowth 1 log on name MenuDB1Log filename f myWork MenuDB1Log ldf size 1 maxsize 5 filegrowth 1 go data mydatabase use MenuDB1 go 附录 1 数据库完整代码如下所示 set nocount on set dateformat ymd use master go if not exists select from syslogins where name user01 exec sp addlogin user01 user01 go create database if exists select from sysdatabases where name OrderDB81 drop database MenuDB1 go create database MenuDB1 on primary name MenuDB1 filename f myWork MenuDB1 mdf size 1 maxsize 5 filegrowth 1 log on name MenuDB1Log filename f myWork MenuDB1Log ldf 26 size 1 maxsize 5 filegrowth 1 go data mydatabase use MenuDB1 go add my user exec sp adduser user01 user01 exec sp addlogin qiantai 123456 MenuDB1 exec sp adduser qiantai qiantai exec sp addlogin customer 123456 MenuDB1 exec sp adduser customer customer go print creat table Dishes go CREATE TABLE Dishes dishesNo char 7 not null 菜品编号 check dishesNo like G 0 9 0 9 0 9 0 9 0 9 0 9 dishesName varchar 10 not null 菜品编号 price numeric 7 2 not null 菜品价格 caloric numeric 7 2 not null 热量 sugers numeric 7 2 not null 糖分 protein numeric 7 2 not null 蛋白质 constraint DishesPK primary key dishesNo go grant all on Dishes to user01 go print create Member go create table Member memberNo char 7 not null 顾客号 check memberNo like C 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 memberName varchar 40 not null 顾客姓名 sex char 1 not null 性别 memberLevel varchar 12 not null 顾客等级 memberCount int not null 顾客积分 birthday datetime null 顾客生日 constraint MemberPK primary key memberNo go 27 grant all on Member to user01 go print create table Menu go create table Menu menuNo char 12 not null 菜单编号 memberNo char 7 not null 顾客号 check memberNo like C 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 tableNo char 4 not null 桌台编号 meandate datetime not null 时间 meanSum numeric 7 2 not null 菜单总价 constraint MenuPK primary key menuNo constraint MenuFK1 foreign key tableNo references Table1 tableNo constraint MenuFK2 foreign key memberNo references Member memberNo go grant all on Table1 to user01 go print create table Table1 go create table Table1 tableNo char 4 not null 桌台编号 place int not null 容纳人数 tableLevel char 10 not null 桌台级别 constraint Table1PK primary key tableNo go grant all on Table1 to user01 go print create table Smeal go create table Smeal smealNo char 4 not null 套餐编号 sprice numeric 7 2 not null 套餐价格 constraint SmealPK primary key SmealNo go grant all on Smeal to user01 go print create SmealDetail go create table SmealDetail smealNo char 4 not null 套餐编号 dishesNo char 7 not null 菜品编号 28 check dishesNo like G 0 9 0 9 0 9 0 9 0 9 0 9 price numeric 7 2 not null 菜品价格 constraint SmealDetailPK primary key clustered smealNo dishesNo constraint SmealDetailFK1 foreign key smealNo references Smeal smealNo constraint SmealDetailFK2 foreign key dishesNo references Dishes dishesNo go grant all on SmealDetail to user01 go print create MenuDetail go create table MenuDetail menuNo char 12 not null 菜单编号 dishesNo char 7 not null 菜品编号 check dishesNo like G 0 9 0 9 0 9 0 9 0 9 0 9 price nu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论