数据库设计网上订餐系统Word下载.docx
《数据库设计网上订餐系统Word下载.docx》由会员分享,可在线阅读,更多相关《数据库设计网上订餐系统Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
1.7总体设计原则
①.开放性、可扩充性、可靠性原则
开放系统是生产各种计算机产品普遍遵循的原则,遵循这种标准的产品都符合一些公共的、可以相互操作的标准,能够融洽的在一起工作。
开放系统使得各种类型的网络和系统互连简单、标准统一,容易扩展升级。
从而适应广大用户需求的多变性和产品的更新换代。
②.良好的用户操作界面
用户操作界面美观、方便、实用,使用户能在较短的时间内掌握其使用方法。
③.实用性原则
任何系统的设计都要考虑其实用性,系统开发的目的是为了实现业务处理自动化、规范化,提高工作效率,减轻工作人员的劳动强度,减少开支。
④工作平台
适用于不同的网络平台。
二、概念设计
2.1系统E-R图
2.2数据流图
2.3数据字典
2.3.1数据项
数据项名/编号
含义说明
数据类型
长度
c_id/p1
用户唯一性说明
varchar
9
c_name/p2
用户昵称
20
c_tel/p3
用户联系方式
11
c_key/p4
用户登陆密码
d_id/p5
菜的唯一性说明
int
d_name/p6
菜的名称
30
d_remain/p7
菜的剩余量
d_discount/p8
打折
float
2
d_price/p9
菜的单价
d_pid/p10
提供商编号
p_id/p11
商店唯一性说明
p_add/p12
商店地址
p_name/p13
商店名称
p_key/p14
商家登陆密码
p_tel/p15
商店联系方式
p_lev/p16
商家信誉
p_state/p17
商家状态
15
m_id/p18
管理员唯一性说明
varchar
4
m_name/p19
管理员姓名
m_key/p20
管理员密码
o_id/p21
订单标号
o_cid/p22
订单中客户标识
o_did/p23
订单中菜标识
o_pid/p24
订单中商店标识
o_time/p25
订餐时间
smalldatetime
o_num/26
数量
o_cadd/27
客户地址
50
o_state/28
订餐状态
m_c_mid/p29
管理员编号
m_c_cid/p30
客户编号
m_c_time/p31
时间
m_c_operation/p32
操作类别
m_p_mid/p33
m_p_pid/p34
商店编号
m_p_time/p35
m_c_operation/p36
2.3.2数据结构
数据结构名称
组成
客户
客户信息
p1-p4
菜品
菜品信息
p5-p10
商店
商店信息
p11-p17
管理员
管理员信息
p18-p20
订单
订单信息
p21-p28
管理用户
管理用户信息
P29-p32
管理商家
管理商家信息
P33-p36
2.3.3处理过程
处理过程名
说明
输入
输出
处理
注册
所有用户
用户详细信息
注册结果
跳转登陆/重新注册
登陆
编号与密码
登陆成功/失败
登陆首页/重新登陆
修改用户信息
已登录用户
相关修改信息
修改成功/失败
修改存储信息
订餐
菜品、数量
订餐成功/失败
加入购物车/重新选择
修改订餐
已订餐用户
菜品、数量的修改
下订单
生成订单
查询与确认订单
提交订单
接受订单
交付相关工作人员
送餐
送餐员
送餐确认
菜单修改
新的菜品、菜品价格修改
更新菜谱
管理
添加或删减用户
更新用户信息库
信息更新
需要更新的信息
三、逻辑结构设计
3.1E—R图向关系的初步转换
客户(编号,昵称,密码,联系方式,状态)
管理员(编号,姓名,密码)
商家(编号,名称,密码,商家地址,联系方式,信誉,状态,剩余量,总量)
菜(编号,名称,价格,折扣,提供商编号,最后修改时间,状态)
订单(客户编号,菜编号,提供商编号,订单时间,数量,客户地址,状态)
管理客户(管理员编号,客户编号,时间,操作类别)
管理商家(管理员编号,商家编号,时间,操作类别)
3.2E-R具体转换代码
①客户表:
createtableclient
(c_idvarchar(9)primarykeynotnullcheck(c_idlike'
c%'
),
c_namevarchar(20)notnull,
c_keyvarchar(20)notnull,
c_telvarchar(11)notnullcheck(c_tellike'
1%'
)unique
)
②管理员表:
createtablemanager
(
m_idvarchar(4)primarykeynotnullcheck(m_idlike'
m%'
m_namevarchar(20)notnull,
m_keyvarchar(20)notnull
③商家表:
createtableprovider
(p_idvarchar(9)primarykeynotnullcheck(p_idlike'
p%'
p_namevarchar(20)notnull,
p_keyvarchar(20)notnull,
p_telvarchar(11)notnulluniquecheck(p_tellike'
p_addvarchar(30)notnullunique,
p_levint,
p_statevarchar(15)check(p_statein('
营业中'
'
打烊'
歇业'
))
④菜谱:
createtabledish
(d_idintidentity(1378001,1)primarykeynotnull,
d_namevarchar(30)notnull,
d_pricefloat
(2)notnull,
d_discountfloat
(2),
d_pidvarchar(9)notnull,
foreignkey(d_pid)referencesprovider(p_id),
d_remainintnotnullcheck(d_remain>
=0),
d_totalintnotnull,
⑤订单:
createtableord
(o_idintidentity(10000001,1)primarykeynotnull,
o_cidvarchar(9),
foreignkey(o_cid)referencesclient(c_id),
o_didint,
foreignkey(o_did)referencesdish(d_id),
o_pidvarchar(9),
foreignkey(o_pid)referencesprovider(p_id),
o_timesmalldatetime,
o_numintnotnullcheck(o_num>
0),
o_caddvarchar(50)notnull,
o_statevarchar(15)check(o_statein('
正常'
取消'
⑥管理客户:
createtablemanager_client
(m_c_midvarchar(4),
foreignkey(m_c_mid)referencesmanager(m_id),
m_c_cidvarchar(9),
foreignkey(m_c_cid)referencesclient(c_id),
m_c_timesmalldatetime,
primarykey(m_c_mid,m_c_cid,m_c_time),
m_c_operationvarchar(15)check(m_c_operationin('
更新'
增加'
删除'
⑦管理商店:
createtablemanager_provider
(m_p_midvarchar(4),
foreignkey(m_p_mid)referencesmanager(m_id),
m_p_pidvarchar(9),
foreignkey(m_p_pid)referencesprovider(p_id),
m_p_timesmalldatetime,
primarykey(m_p_mid,m_p_pid,m_p_time),
允许注册'
注销账户'
))
四、外围实现部分--客户端实现
本次数据库的外围采用C++语言实现的,编程环境使用的是visualstudio2010。
数据库连接采用的是ADO(ActiveXDataObjects),主要是因为使用起来十分简便(只需掌握三个智能指针即可完成大多数功能),且不需要下载其他文件(windows自带)。
而用户交互界面则使用的是dos窗口。
客户端目前提供两个功能,1是订餐功能,1是注册功能。
首先介绍注册功能,每个注册账户对应一个数据库登陆账户以及该账户下的一个拥有客户角色权限的用户,已注册账户的信息由client表存储。
注册过程具体如下:
用户选择注册功能后,程序默认以sa身份登录数据库,用户通过dos窗口输入新的id以及密码,程序在client表中检查id是否被使用,若id已被占用则提示用户输入新的id,否则通过sql语句创建登陆账户以及拥有一定权限的数据库用户并提示用户注册成功。
(注册实现代码如下:
然后介绍订餐功能,选择订餐功能后首先提示用户输入账户(id)以及密码,输入后,程序尝试以此账户连接数据库,以30秒为时限,若超过时限没有连接上数据库则提示用户连接失败,否则从数据库中选择状态为”营业中”的饭店信息显示供用户选择,用户选择饭店编号后,从数据库中读取该饭店提供的剩余量大于0的菜品显示供用户选择,待用户作好选择后,将订单插入数据库中ord表(订单编号采用自增长)并修改菜品的剩余值,提示用户接受订单成功,并关闭与数据库的连接。
五、数据库实现
5.1据库的建立
启动服务管理器,打开查询分析器,在调试程序窗口输入下列语句:
Createdatabasedatabase_zbg
On
(name=zbg_data,
'
E:
\dbdesign\zbg_data.mdf'
Size=10mb
Maxsize=500mb,
Logon
(name=zbg_log,
\dbdesign\zbg_log.ldf'
Size=5mb
Maxsize=100mb,
5.2数据载入
1)client表
insertintoclientvalues('
c20120001'
雷政富'
leizhenf'
);
c20120002'
吴婷'
wuting12'
c20120003'
李毅'
liyi1234'
15423122323'
c20120004'
郑媛媛'
zhengyua'
c20120005'
石磊'
shilei12'
c20120006'
吴彦祖'
wuyanzu1'
2)manager
insertintomanagervalues('
m001'
刘诗诗'
liushish'
m002'
郭晶晶'
guojingj'
m003'
杨幂'
yangmi12'
3)provider
insertintoprovidervalues('
p20131001'
东北酒家'
wuqilong'
梧桐路12号'
4,'
p20131002'
学惠园'
lichunch'
梧桐路21号'
3,'
p20131003'
东北酒店'
yanjiehe'
翟乃路12号'
p20131004'
四川酒店'
yuliang1'
淄博路5号'
p20131005'
状元酒店'
maweidu1'
中原路54号'
p20131006'
大排档'
fengtang'
中原路89号'
p20131007'
老乡鸡'
maoyushi'
梧桐路13号'
4)dish
insertintodishvalues('
大对虾'
32.3,0.95,'
500,500);
31.3,1,'
300,300);
30,0.98,'
彩花迎宾'
22.3,0.97,'
32.3,0.9,'
鱿鱼汤'
12.3,1,'
100,100);
狗全席'
22.3,1,'
22.4,1,'
龙门鱼'
32.3,0.99,'
33,0.98,'
叫花鸡'
133.2,0.8,'
50,50);
133,0.81,'
133.1,0.8,'
50,50)
5)ord
insertintoordvalues('
1378001,'
2000-05-0112:
35:
29.998'
1,'
梧桐路99号'
1378011,'
2000-05-0212:
2,'
1378006,'
2000-05-0312:
梧桐路77号'
1378007,'
2000-05-0412:
1378009,'
2000-05-0512:
5,'
1378004,'
2000-05-0612:
6,'
梧桐路88号'
2000-05-0712:
7,'
1378003,'
2000-05-0812:
8,'
梧桐路66号'
2000-05-0912:
9,'
6)manager_client
insertintomanager_clientvalues('
2013-05-0812:
29'
37:
38:
39:
2013-05-0813:
2013-05-0814:
7)manager_provider
insertintomanager_providervalues('
2013-02-0814:
2013-02-0815:
2013-02-0816:
p20