餐厅网络点餐系统
一 系统介绍
一个企业内的餐厅,需要实现内部网络自动订餐系统,系统基本功能如下:
1. 餐厅有个内部的食谱(recipe),每周一前由餐厅经理从中选出几十种食品(例如菜肴,点心,主食,糖水),形成菜单(menu),菜品需要有图片,价格,计量单位信息。每次生成的历史菜单需要留存。
2. 企业员工每天在上午9:00之前登录系统,从菜单中选择自己需要吃的菜品,生成一张订单(order form)
3. 9点以后,厨房主管可以打印出一份总括订单(blanket order),包含每种菜肴(食品)的数量,用以控制加工菜肴的配料选取等工作。
4. 中午11:30,配餐员打印出所有的订单,用以配送午餐
5. 每月1号系统会自动进行统计工作,按照月度统计餐厅售出的菜品数量,总金额等信息,餐厅经理和财务管理也可以单独列出某位用户每月的所有订餐记录。
6. 内部食谱可以餐厅经理和厨房主管进行管理,删除或修改一个库中的菜式信息不能影响已有的点餐单,菜单或订餐记录。
二 数据需求
1. 点餐系统按照角色和用户来管理各类权限,有餐厅经理、厨房主管、配餐员、财务管理和企业员工几种角色,每个用户只能有一个角色,只能有一个餐厅经理和一个厨房主管,其它角色可以多人。一个用户(user)至少需要包含如下信息:
1) 姓名
2) 登录名
3) 密码
4) 联系电话
5) 工作单位(部门)
6) 角色
2. 食谱(recipe)中的每种菜品至少包含如下信息:
1) 菜肴名称(包括食品名,如青椒炒肉丝、米饭、西红柿蛋汤)
2) 分类(如主食,糕点,菜肴)
3) 菜品图片
4) 计量单位(如份、两、个、例、杯等)
5) 单位价格
6) 烹饪说明,例如各种食材的分量、烹饪方法等
3. 菜单(menu)中每种菜品包含的信息与食谱基本一致,但是不需要烹饪说明。
4. 订单(order form)包含如下信息:
1) 员工姓名
2) 联系电话
3) 下单时间
4) 点餐表,包含
1. 菜名
2. 单位
3. 分量
4. 单价
5. 合计价格)
5) 总计价格
5. 总括订单(blanket order)包含所有当天点餐的菜名,分量信息
6. 月度销售统计总报表含如下信息
1) 统计年月
2) 菜品统计信息,包含:
1. 菜名
2. 单位
3. 分量
4. 单价
5. 合计价格
3) 总计价格
7. 个人月度销售统计汇总表如下表所示:
员工月度订单汇总
员工:刘XX 联系电话:12200993311 统计月份:2012年03月
|
时间
|
菜名
|
单位
|
分量
|
单价
|
合计
|
2012-03-20
|
米饭
|
两
|
4
|
¥0.30
|
¥1.20
|
2012-03-20
|
小炒肉
|
份
|
1
|
¥5.00
|
¥5.00
|
2012-03-20
|
西红柿蛋汤
|
份
|
1
|
¥3.00
|
¥3.00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
合计金额:¥9.20
|
操作员: XXX(餐厅经理) 操作时间:2012-04-03 14:30:22
|
三 设计要求
根据上面的系统介绍和数据需求为该餐厅设计其订餐系统的数据库结构,数据库名为orcl,至少新建一个独立的数据库用户(名称自定)操作该数据库。并完成如下操作:
1. 将所有DDL语句保存在一个DDL.SQL文件中,要求,DBA执行DDL.sql能为该系统创建相应的数据库用户并分配足够权限(不可以分配DBA角色),并自动建立相应的表空间,表,约束,索引,视图,存储过程等信息。
2. 将为数据库添加初始化数据(如管理员用户,菜谱信息)的sql语句存储在INIT.SQL文件中。
3. 建立doc文档,针对每个用例建立相应的示例SQL,例如:添加用户,删除用户,修改用户信息,修改用户密码等,存为”用例数据操作说明.DOC”,要求:各类汇总表格(如)的数据必须由视图和存储过程(相应的视图或存储过程可以在DDL中预先定义)生成。基本格式参考如下:
例如:用户修改自身密码,参数:ID(用户ID),pwd(原始密码Hash),newpwd(新密码Hash)
执行SQL: update user_table set password=’ newpwd’ where userid=ID AND password=’pwd’;