SQL数据库期末大作业.docx
《SQL数据库期末大作业.docx》由会员分享,可在线阅读,更多相关《SQL数据库期末大作业.docx(19页珍藏版)》请在冰豆网上搜索。
SQL数据库期末大作业
HefeiUniversity
《数据库期末大作业》
餐饮业信息管理系统的开发
专业:
电子信息工程
班级:
13电子1班
姓名:
李云
学号:
1305011005
指导老师:
史俊朗
完成时间:
2016-12-28
一、本项目的需求分析
随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。
高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业范围,增加知名度等。
为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:
员工登陆操作信息系统,以及店主操作管理信息系统。
不同的设计从而达到不同的功能,实现信息的有效传达与管理。
第一:
在员工使用本餐饮信息管理系统应可以实现以下功能:
1.添加修改查询客户会员信息(修改客户信息需客户确认)
2.查询菜单
3.添加查询预定信息,为老顾客打折
4.客户可以在自己的会员账户里充值
5.顾客可以用现金买单也可以从会员账户里扣取
第二:
管理员使用本餐饮信息管理系统应可以实现以下功能:
1.添加修改查询客户会员信息(修改客户信息需客户确认)
2.添加修改查询菜单信息,最好能看到菜品图片
3.添加查询预定信息,为老顾客打折
4.客户可以在自己的会员账户里充值
5.顾客可以用现金买单也可以从会员账户里扣取
6.设定具体的打折方法
7.添加职员信息,权限也可以定为管理员。
8.可以查询使用者的现金收款金额。
二、餐饮业管理数据库管理系统的E-R模型(概念结构设计)
1.用户(员工)的信息:
编号、密码、类型、姓名、电话、收款金额
2.客户信息:
用户编号、客户编号、姓名、电话、密码、开卡时间、卡内余额
3.食谱:
类型、名称、价格、配料、照片
4.预定:
用户编号、日期、预定时间、客户姓名、类型、预定食谱、桌号
5桌台管理:
桌号、使用情况、
6.点餐管理:
用户编号、类型、菜品、数量、价格、照片
7.盈利管理:
日期、日支出金额、店内收入、外卖收入、盈利额度
各对象之间的联系图:
用户E-R图
主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。
客户表E-R图
主要存储一些客户信息,如客户的账号、密码、联系方式和消费情况等等,主要用于客户订餐、充值和结算,使用于添加预定。
桌台表E-R图
主要用于储存餐饮店桌台使用情况,方便来客安排,与预定。
食谱表E-R图
主要存储一些食谱信息,如食谱的名称、价格和照片等等,主要用于客户订餐,使用于添加预定。
用户编号
点餐表E-R图
主要储存堂食客人点餐信息,用于记录、统计点餐信息,以及分析菜品的受欢迎程度。
预定E-R图
主要存储一些预定信息,如客户的账号、预定的时间、桌号和菜单等等,主要用于记录客户的预定信息,会使用到用户、客户、菜单和折扣信息。
盈利报表
日支出金额
日期
盈利额度
店内收入
外卖收入
主要存储每日收入流水,用于统计财务收入。
三、数据表的设计
1、user(用户员工表)
表3.1user
序号
字段名称
字段描述
字段类型
长度
备注
1
user_id
用户编号
char
20
不允许空
2
Pwd
用户密码
char
20
不允许空
3
Style
用户类型
nchar
20
不允许空
4
Name
用户姓名
char
20
不允许空
5
Tel
用户电话
Char
20
不允许空
6
Money
收款金额
money
允许空
用户表主要用于存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息来记录经手的用户,字段money用于记录用户的收款金额,便于结算时对收款现金的核对。
2、customer(客户表)
表3.2customer
序号
字段名称
字段描述
字段类型
长度
备注
1
Name
客户姓名
char
20
不允许空
2
Id
客户编号
nchar
20
不允许空
3
Pwd
客户密码
nchar
20
不允许空
4
Addtime
添加时间
nchar
20
不允许空
5
Money
账户余额
money
不允许空
6
usedmoney
已用金额
money
不允许空
7
Tel
客户电话
nchar
20
允许空
8
Userid
用户编号
nchar
10
不允许空
客户表主要用于存储一些客户信息,如客户的账号、密码、联系方式和消费情况等等,主要用于客户订餐、充值和结算,字段money用于储存账户余额,在使用充值和账户余额支付时会使用到它。
字段usedmoney用于记录客户的消费情况,为客户打折时会使用到它。
3、food(食谱表)
表3.3food
序号
字段名称
字段描述
字段类型
长度
备注
1
foodname
食谱名称
nchar
20
不允许空
2
Price
价格
money
不允许空
3
Photo
食谱照片
image
允许空
4
Efficacy
类型
nchar
50
允许空
5
Formula
食谱配料
nchar
50
允许空
食谱表主要用于存储一些食谱信息,如食谱的名称、价格和照片等等,主要用于客户订餐,使用于添加预定。
字段Price记录的是食物的价格。
当客户预定餐点时,系统使用它来算费用。
4、Order(点餐表)
表3.3Order
序号
字段名称
字段描述
字段类型
长度
备注
1
Userid
用户编号
nchar
10
不允许空
2
Tableid
桌号
nchar
10
不允许空
3
People
人数
nchar
10
不允许空
4
foodname
菜品名称
nchar
20
不允许空
5
Efficacy
消费类型
nchar
50
允许空
6
Photo
菜品照片
image
允许空
7
Price
价格
money
不允许空
8
Amount
数量
nchar
50
不允许空
9
Date
日期
nchar
20
不允许空
5、YuDing(预定表)
表3.4YuDing
序号
字段名称
字段描述
字段类型
长度
备注
1
Tableid
桌号
nchar
10
不允许空
2
Date
日期
nchar
20
不允许空
3
Time
预定时间
nchar
10
不允许空
4
Name
客户姓名
nchar
10
不允许空
5
Userid
用户编号
nchar
10
不允许空
6
Food
菜单号
nvarchar
MAX
不允许空
7
Money
消费金额
money
不允许空
预定表主要用于存储一些预定信息,如客户的账号、预定的时间、桌号和菜单等等,主要用于记录客户的预定信息,会使用到用户、客户、菜单和折扣信息。
当系统预定餐点时,会从其他各表中调出需要的信息,经过计算和处理后,将最终信息储存到YuDing表,该表和其它各表都有紧密的联系。
6、Yinli(盈利表)
表3.3food
序号
字段名称
字段描述
字段类型
长度
备注
1
Data
日期
nchar
20
不允许空
2
in1
店内收入
money
允许空
3
in2
外卖收入
money
允许空
4
out
日支出
money
允许空
5
yinli
盈利
money
允许空
5
beizhu
备注
nchar
允许空
四.数据库创建:
创建表
食谱表
用户表
预定表
桌台表
盈利表
点餐
客户表
五、查询
1.查询“小餐饮管理”数据库中,“客户表”中的所有数据
2.条件查询:
查询“客户表”中“客户姓名=孙超”的信息
3.查询“食谱表”中菜名、价格、食品照片、类型、食谱配料
4.查询“点菜表”中用户编号为01点菜情况。
5.模糊查询:
查询“客户表”中,姓“王”且表中情况
6.查询统计“客户表”中客户的总数
8.二表查询:
查询“用户表”中编号=‘01’的编号点菜情况
9.三表查询:
查询“用户表”,“客户表”,“点菜表”中,用户编号为01的用户类型,点菜情况,以及预定情况
10嵌套查询:
查询点了热菜的用户编号
六.约束
代码约束
/*设置餐饮表中盈利额度店内收入>0并<=1000的约束*/
use小餐饮管理系统
go
ALTERTABLE盈利表
ADDCONSTRAINTqw_constraintCHECK(店内收入>=0AND店内收入<=10000)
select*
from盈利表
/*设置价格>=0AND价格<=110的约束*/
use小餐饮管理系统
go
ALTERTABLE食谱表
ADDCONSTRAINTwq_constraintCHECK(价格>=0AND价格<=110)
select*
from食谱表
/*设置桌台表可座人数>=0AND可座人数<=10的约束*/
use小餐饮管理系统
go
ALTERTABLE桌台表
ADDCONSTRAINTrs_constraintCHECK(可座人数>=0AND可座人数<=10)
select*
from桌台表
/*设置使用情况IN('未','是')的约束*/
use小餐饮管理系统
go
ALTERTABLE桌台表
ADDCONSTRAINTss_constraintCHECK(使用情况IN('未','是'))
select*
from桌台表
/*向表中添加一个字段并设置默认值约束*/
ALTERTABLE用户表
ADDAddDatedatetimeNULL
CONSTRAINTAddDateDflt
DEFAULTgetdate()WITHVALUES
select*
from用户表
/*创建一个新表VIP表,只考虑贵宾编号和性别两列,性别只包括男或女的约束*/
Use小餐饮管理系统
go
createTABLEVIP表
(
贵宾编号char(6)notnull,
性别char
(1)notnullcheck(性别in('男','女'))
)
代码抓图:
八、存储过程
九、总结
(1)、通过本次大报告,对于数据库设计的基本方法、步骤有了更深入的了解和认识。
学会用整体性的思维来构思设计数据库,注意到了数据库中各个数据项之间的联系,以及其与整个数据库之间的联系。
(2)从创建数据库,运用代码实现各个数据表的构建再到约束性条件的实现,运用存储过程、触发器对表进行一系列的操作,都让我们对之前实验与SQL相关的部分进行了回顾。
同时通过这个数据库的建立和完善,将诸多实验中零散的知识点联系在一起。
(3)在实验过程中遇到许多问题,通过查阅资料,翻阅书籍,和同学讨论等方法解决了问题。
学会了整体性思维,在很多次的修改之后完成实验内容,收获颇丰。
(4)能够根据题目的具体要求,有拓展,有延伸,更进一步掌握了存储过程、触发器、视图的相关概念,对知识层次的认知更进一步。
感谢下载!
欢迎您的下载,资料仅供参考