数据库课程设计
        题    目:网上订餐系统数据库设计
院    系                                  
专    业                                  
姓    名                                    
学    号                                    
指导教师             欧阳柏成              
教师职称              副教授               
填写日期: 2015年 5月 21日
一、需求分析
1.1现状分析
现如今普遍使用电话订餐,这种方式订餐虽然较为方便,效率也较高,但是由此引发的一些不良现象不得不重视。例如,定餐后,饭店未能够及时将信息记录存档,由于看不到菜品的图片,顾客不能对菜品有一个直观的感受。同时,电话预约中的诚信问题也不得不考虑,订餐过程中顾客对信息的不明确会产生一定的误解并由此造成人力资源及时间的浪费。
这样开发出图文并茂,信息能够及时更新和查看的在线网上订餐系统就具有了重要的意义。
客对菜品的预定及支付方式;
即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能;
系统运行应该快速、稳定、高效和可靠;
在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。
1.6可行性分析
随着经济的快速发展,网上订餐已经如雨后春笋般的出现在了许多地方。特别在公司,企业
内部,团体订餐已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且口味也越来越挑刺,正因为如此网络订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻和发现新的菜品,品尝不同风格的菜品,网络订餐业务在中国有着极大的发展空间以及良好的背景。
1.7总体设计原则
①.开放性、可扩充性、可靠性原则
二、概念设计
2.1 系统E-R图
2.2数据流图
2.3数据字典
2.3.1 数据项
数据项名/编号
含义说明
数据类型
长度
c_id/p1
用户唯一性说明
varchar
9
c_name/p2
用户昵称
varchar
20
c_tel/p3
用户
varchar
11
c_key/p4
用户登陆密码
varchar
20
d_id/p5
菜的唯一性说明
int
d_name/p6
菜的名称
varchar
30
d_remain/p7
菜的剩余量
int
d_discount/p8
打折
float
2
d_price/p9
菜的单价
float
2
d_pid/p10
提供商编号
int
p_id/p11
商店唯一性说明
varchar
9
p_add/p12
商店地址
varchar
30
p_name/p13
商店名称
varchar
20
p_key/p14
商家登陆密码
varchar
20
p_tel/p15
商店
varchar
11
p_lev/p16
商家信誉
int
p_state/p17
商家状态
varchar
15
m_id/p18
管理员唯一性说明
varchar
4
m_name/p19
管理员姓名
varchar
20
m_key/p20
管理员密码
varchar
20
o_id/p21
订单标号
int
o_cid/p22
订单中客户标识
int
o_did/p23
订单中菜标识
int
o_pid /p24
订单中商店标识
int
o_time /p25
订餐时间
smalldatetime
o_num/26
数量
int
o_cadd/27
客户地址
varchar
50
o_state/28
订餐状态
varchar
15
m_c_mid /p29
管理员编号
int
m_c_cid/p30
客户编号
int
m_c_time/p31
时间
smalldatetime
m_c_operation/p32
操作类别
varchar
15
m_p_mid/p33
管理员编号
int
m_p_pid/p34
商店编号
int
m_p_time/p35
操作类别
smalldatetime
m_c_operation /p36
时间
varchar
15
2.3.2 数据结构
数据结构名称
含义说明
组成
客户
客户信息
p1-p4
菜品
菜品信息
p5-p10
商店
商店信息
p11-p17
管理员
管理员信息
p18-p20
订单
订单信息
p21-p28
管理用户
管理用户信息
P29-p32
管理商家
管理商家信息
P33-p36
2.3.3 处理过程
处理过程名
说明
输入
输出
处理
注册
所有用户
用户详细信息
注册结果
跳转登陆/重新注册
登陆
所有用户
编号与密码
登陆成功/失败
登陆首页/重新登陆
修改用户信息
已登录用户
相关修改信息
东风雪铁龙
修改成功/失败
修改存储信息
订餐
已登录用户
菜品、数量
订餐成功/失败
加入购物车/重新选择
修改订餐
已订餐用户
菜品、数量的修改
修改成功/失败
加入购物车/重新选择
下订单
已订餐用户
生成订单
查询与确认订单
已订餐用户
提交订单
已订餐用户
接受订单
商店
交付相关工作人员
送餐
送餐员
送餐确认
菜单修改
商店
新的菜品、菜品价格修改
更新菜谱
管理
管理员
添加或删减用户
更新用户信息库
信息更新
管理员
需要更新的信息
信息更新
三、逻辑结构设计
3.1 E—R图向关系的初步转换
客户(编号,昵称,密码,,状态)
管理员(编号,姓名,密码)
商家(编号,名称,密码,商家地址,,信誉,状态,剩余量,总量)
菜(编号,名称,价格,折扣,提供商编号,最后修改时间,状态)
订单(客户编号,菜编号,提供商编号,订单时间,数量,客户地址,状态)
管理客户(管理员编号,客户编号,时间,操作类别)
管理商家(管理员编号,商家编号,时间,操作类别)
3.2 E-R具体转换代码
①客户表:
create table  client
(c_id varchar(9)  primary key not null check(c_id like 'c%'),
c_name varchar(20) not null,
c_key varchar(20) not null,
c_tel varchar(11) not null check(c_tel like '1%') unique
)
②管理员表:
create table  manager
(
m_id varchar(4)  primary key not null check(m_id like 'm%'),
m_name varchar(20) not null,
m_key varchar(20) not null
)
③商家表:
create table provider
(p_id varchar(9) primary key not null check(p_id like 'p%'),
p_name varchar(20) not null,
p_key varchar(20) not null,
p_tel varchar(11) not null unique check(p_tel like '1%'),
p_add varchar(30) not null unique,
p_lev int,
p_state varchar(15) check (p_state in ('营业中','打烊','歇业'))
)
④菜谱:
create table dish
(d_id int identity(1378001,1) primary key not null,
d_name varchar(30) not null,
d_price float(2) not null,
d_discount float(2),
d_pid varchar(9) not null ,
foreign key (d_pid) references provider(p_id),
d_remain int not null check (d_remain>=0),
d_total int not null,
)
⑤订单:
create table ord
(o_id int identity(10000001,1) primary key not null,
o_cid varchar(9),
foreign key (o_cid) references client (c_id),
o_did int,
foreign key (o_did) references dish (d_id),
o_pid varchar(9),
foreign key (o_pid) references provider (p_id),
o_time smalldatetime,
o_num int not null check (o_num>0),
o_cadd varchar(50) not null,
o_state varchar(15) check (o_state in('正常','取消'))
)
⑥管理客户:
create table manager_client
(m_c_mid varchar(4),
foreign key (m_c_mid) references manager (m_id),
m_c_cid varchar(9),