版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库课程设计题目: 网上订餐系统数据库设计院 系:专 业:姓 名:学 号:指导教师 :欧阳柏成教师职称 :副教授填写日期: 2015 年 5 月 21 日、需求分析现状分析现如今普遍使用电话订餐, 这种方式订餐虽然较为方便, 效率也较高, 但是 由此引发的一些不良现象不得不重视。 例如,定餐后, 饭店未能够及时将信息记 录存档,由于看不到菜品的图片,顾客不能对菜品有一个直观的感受。同时,电 话预约中的诚信问题也不得不考虑, 订餐过程中顾客对信息的不明确会产生一定 的误解并由此造成人力资源及时间的浪费。这样开发出图文并茂, 信息能够及时更新和查看的在线网上订餐系统就具有 了重要的意义。客对菜品
2、的预定及支付方式;即时可见: 对客户预定餐饮信息的处理(包括录入、删除)将立即在主页的 对应栏目显示出来,达到“即时发布、即时见效”的功能;系统运行应该快速、稳定、高效和可靠;在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。可行性分析随着经济的快速发展, 网上订餐已经如雨后春笋般的出现在了许多地方。 特 别在公司,企业内部,团体订餐已经成为了趋势。同时,随着全国人民的精神、 物质和文化生活高度的提高, 人们已经不在仅仅停留在吃饱的程度, 不但要吃饱, 还要吃好, 而且口味也越来越挑刺, 正因为如此网络订餐业务的出现, 正迎合了 这些人的口味,他们不但省去了自己做饭的麻烦, 而且也能寻找
3、和发现新的菜品, 品尝不同风格的菜品,网络订餐业务在中国有着极大的发展空间以及良好的背 景。总体设计原则 . 开放性、可扩充性、可靠性原则、概念设计系统 E-R 图数据流图数据字典数据项数据项名 / 编号含义说明数据类型长度c_id/p1用户唯一性说明varchar9c_name/p2用户昵称varchar20c_tel/p3用户联系方式varchar11c_key/p4用户登陆密码varchar20d_id/p5菜的唯一性说明intd_name/p6菜的名称varchar30d_remain/p7菜的剩余量intd_discount/p8打折float2d_price/p9菜的单价float
4、2d_pid/p10提供商编号intp_id/p11商店唯一性说明varchar9p_add/p12商店地址varchar30p_name/p13商店名称varchar20p_key/p14商家登陆密码varchar20p_tel/p15商店联系方式varchar11p_lev/p16商家信誉intp_state/p17商家状态varchar15m_id/p18管理员唯一性说明varchar4m_name/p19管理员姓名varchar20m_key/p20管理员密码varchar20o_id/p21订单标号into_cid/p22订单中客户标识into_did/p23订单中菜标识into_p
5、id /p24订单中商店标识into_time /p25订餐时间smalldatetimeo_num/26数量into_cadd/27客户地址varchar50o_state/28订餐状态varchar15m_c_mid /p29管理员编号intm_c_cid/p30客户编号intm_c_time/p31时间smalldatetimem_c_operation/p32操作类别varchar15m_p_mid/p33管理员编号intm_p_pid/p34商店编号intm_p_time/p35操作类别smalldatetimem_c_operation /p36时间varchar15数据结构数据结
6、构名称含义说明组成客户客户信息p1-p4菜品菜品信息p5-p10商店商店信息p11-p17管理员管理员信息p18-p20订单订单信息p21-p28管理用户管理用户信息P29-p32管理商家管理商家信息P33-p36处理过程处理过程名说明输入输出处理注册所有用户用户详细信息注册结果跳转登陆 / 重新注册登陆所有用户编号与密码登陆成功 / 失败登陆首页 / 重新登陆修改用户信息已登录用户相关修改信息修改成功 / 失败修改存储信息订餐已登录用户菜品、数量订餐成功 / 失败加入购物车 / 重新选择修改订餐已订餐用户菜品、数量的修修改成功 / 失败加入购物车 / 重改新选择下订单已订餐用户生成订单查询与
7、确认订单已订餐用户提交订单已订餐用户接受订单商店交付相关工作人员送餐送餐员送餐确认菜单修改商店新的菜品、 菜品价格修改更新菜谱管理管理员添加或删减用更新用户信息户库信息更新管理员需要更新的信息信息更新三、逻辑结构设计E R图向关系的初步转换 客户(编号,昵称,密码,联系方式,状态) 管理员(编号,姓名,密码)商家(编号,名称,密码,商家地址,联系方式,信誉,状态 , 剩余量,总量)菜(编号,名称,价格,折扣,提供商编号,最后修改时间,状态)订单(客户编号,菜编号,提供商编号,订单时间,数量,客户地址,状态)管理客户(管理员编号,客户编号,时间,操作类别)管理商家(管理员编号,商家编号,时间,操
8、作类别)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
9、 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 varch
10、ar(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 ke
11、y (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(,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),
12、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)
13、, m_c_cid varchar(9),foreign key (m_c_cid) references client (c_id),m_c_time smalldatetime,primary key (m_c_mid,m_c_cid,m_c_time),m_c_operation varchar(15) check (m_c_operation in('更新',' 增加 ',' 删除') 管理商店:create table manager_provider(m_p_mid varchar(4),foreign key (m_p_mid) r
14、eferences manager (m_id),m_p_pid varchar(9),foreign key (m_p_pid) references provider (p_id), m_p_time smalldatetime,primary key (m_p_mid,m_p_pid,m_p_time),m_c_operation varchar(15) check (m_c_operation in('允许注册 ',' 注销账户') )四、外围实现部分 - 客户端实现本次数据库的外围采用 C+语言实现的,编程环境使用的是 visual studio 20
15、10 数据库连接采用的是 ADO(ActiveX Data Objects ),主要是因为使用起来十分 简便(只需掌握三个智能指针即可完成大多数功能) ,且不需要下载其他文件 ( windows自带)。而用户交互界面则使用的是 dos 窗口。客户端目前提供两个功能, 1是订餐功能, 1是注册功能首先介绍注册功能, 每个注册账户对应一个数据库登陆账户以及该账户下的一个 拥有客户角色权限的用户,已注册账户的信息由 client 表存储。注册过程具体 如下: 用户选择注册功能后,程序默认以 sa 身份登录数据库,用户通过 dos 窗口输入新的 id 以及密码,程序在 client 表中检查 id 是
16、否被使用,若 id 已被 占用则提示用户输入新的 id ,否则通过 sql 语句创建登陆账户以及拥有一定权 限的数据库用户并提示用户注册成功。 (注册实现代码如下: ) 然后介绍订餐功能,选择订餐功能后首先提示用户输入账户( id )以及密码,输 入后,程序尝试以此账户连接数据库,以 30 秒为时限,若超过时限没有连接上 数据库则提示用户连接失败, 否则从数据库中选择状态为”营业中”的饭店信息 显示供用户选择, 用户选择饭店编号后, 从数据库中读取该饭店提供的剩余量大 于 0 的菜品显示供用户选择, 待用户作好选择后, 将订单插入数据库中 ord 表( 订 单编号采用自增长 ) 并修改菜品的剩
17、余值,提示用户接受订单成功,并关闭与数 据库的连接。五、数据库实现据库的建立 启动服务管理器,打开查询分析器,在调试程序窗口输入下列语句:On( name= zbg_data,Filename=' E:dbdesign ',Size=10mbMaxsize=500mb,Filegrowth=5mb)Log on(name= zbg_log,Filename=' E:dbdesign ',Size=5mbMaxsize=100mb,Filegrowth=5mb)数据载入1)client 表雷政富 ','leizhenf',''
18、;); 1616insert into client values('c','insert into client values('c','吴婷','wuting12','');insert into client values('c','李毅','liyi1234','');insert into client values('c','郑媛媛 ','zhengyua','');i
19、nsert into client values('c','石磊','shilei12','');insert into client values('c','吴彦祖 ','wuyanzu1','');2)managerinsert into manager values('m001','刘诗诗 ','liushish');insert into manager values('m002','郭晶
20、晶 ','guojingj');insert into manager values('m003','杨幂 ','yangmi12');3)providerinsert into provider values('p','东北酒家 ','wuqilong','','梧桐路 12 号',4,' 营业中 ');insert into provider values('p','学惠园 ','li
21、chunch','','梧桐路 21 号',3,' 营业中 ');insert into provider values('p','东北酒店 ','yanjiehe','','翟乃路 12 号',4,' 打烊 ');insert into provider values('p','四川酒店 ','yuliang1','','淄博路 5 号',4,' 歇业 &
22、#39;);insert into provider values('p','状元酒店 ','maweidu1','','中原路 54 号',4,' 营业中 ');insert into provider values('p','大排档 ','fengtang','','中原路 89 号',4,' 打烊 ');insert into provider values('p','老乡鸡
23、 ','maoyushi','','梧桐路 13 号',4,' 营业中 ');4) dishinsert into dish values(' insert into dish values(' insert into dish values(' insert into dish values(' insert into dish values(' insert into dish values(' insert into dish values(' insert i
24、nto dish values(' insert into dish values(' insert into dish values(' insert into dish values(' insert into dish values('大对虾 ','p',500,500);大对虾 ',1,'p',300,300);大对虾 ',30,'p',500,500);彩花迎宾 ','p',500,500);彩花迎宾 ','p',500,50
25、0);鱿鱼汤 ',1,'p',100,100);狗全席 ',1,'p',500,500);狗全席 ',1,'p',500,500);龙门鱼 ','p',500,500);龙门鱼 ',33,'p',500,500);叫花鸡 ','p',50,50);叫花鸡 ',133,'p',50,50);叫花鸡 ','p',50,50)insert into dish values('5) ordinsert i
26、nto ord values('c',1378001,'p','2000-05-01 12:35:',1,'梧桐路99 号',' 正常');insert into ord values('c',1378011,'p','2000-05-02 12:35:',2,'梧桐路99 号',' 正常');insert into ord values('c',1378006,'p','2000-05-03 1
27、2:35:',3,'梧桐路77 号',' 正常');insert into ord values('c',1378007,'p','2000-05-04 12:35:',4,'梧桐路77 号',' 正常');insert into ord values('c',1378009,'p','2000-05-05 12:35:',5,'梧桐路77 号',' 正常');insert into ord va
28、lues('c',1378004,'p','2000-05-06 12:35:',6,'梧桐路88 号',' 正常');insert into ord values('c',1378004,'p','2000-05-07 12:35:',7,'梧桐路88 号',' 正常');insert into ord values('c',1378003,'p','2000-05-08 12:35:'
29、,8,'梧桐路66 号',' 正常');insert into ord values('c',1378004,'p','2000-05-09 12:35:',9,'梧桐路66 号',' 正常');6)manager_client insert into manager_client values('m001','c','2013-05-08 12:35:29',' 增加');insertintomanager_clien
30、tvalues('m001','c','2013-05-0812:37:29','增加');insertintomanager_clientvalues('m003','c','2013-05-0812:38:29','增加');insertintomanager_clientvalues('m002','c','2013-05-0812:39:29','增加');insertintomanager_cl
31、ientvalues('m002','c','2013-05-0813:35:29','增加');insertintomanager_clientvalues('m003','c','2013-05-0814:35:29','增加');7) manager_providerinsert into manager_provider values('m003','p','2013-02-08 14:35:29','
32、允许注册 ');insert into manager_provider values('m003','p','2013-02-08 15:35:29',' 允许注册 ');insert into manager_provider values('m003','p','2013-02-08 16:35:29',' 允许注册 ');insert into manager_provider values('m003','p',
33、9;2013-02-08 17:35:29',' 允许注册 ');insert into manager_provider values('m003','p','2013-02-08 18:35:29',' 允许注册 ');insert into manager_provider values('m003','p','2013-02-08 19:35:29',' 允许注册 ');insert into manager_provider valu
34、es('m003','p','2013-02-08 19:39:29',' 允许注册 ');六、数据库的运行和维护作为网管员, 无论其管理的网络的规模是大还是小, 在日常的管理中除了维 护网络平稳运行、 及时排除网络故障、 保护网络安全等工作以外, 备份网络中关 键数据也是其中的一个非常非常重要的工作环节。网络中的各种故障无非就分两种 : 软件故障和硬件故障。对于“硬件故障” 可以通过维修或更换硬件设备得到及时解决 ; 对于“软件故障”则可以通过重新 安装或升级软件、 重做网络或应用软件系统等方法及时解决, 而且用此方法来解 决网
35、络故障大多需要一些基础的、 关键的数据支持才能得以恢复正常。 但是,网 络中诸如此类的关键数据 (特别是“应用软件系统”中的关键数据 ) 的损坏或丢失, 绝大部分是无法恢复和弥补的。定义并设置备份启用维护计划任务运行要求:操作系统: Windows xp 及以上版本,数据库: SQL server2005 ,外围平台: Microsoft Visual studio2010内存: 2G七、感想及总结:此次的数据库课程设计中,我通过与小组内的其他两位同学的共同探讨与努力, 设计并实现了人生中的第一个数据库, 由于刚刚上完数据库的课程, 此次的动手 实践确实加深了我对数据库这门课程的理解,同时也发
36、现了许多平常忽略的问 题。平时看书上的 E-R 图十分简单,但自己设计的时候却发现需要考虑许多细节, 稍有疏忽就会产生许多棘手的问题。 E-R 图之后还要考虑表,视图,触发器,索 引,完整性约束等问题, 对于第一次设计数据库的我们来说刚开始的时候确实感 觉到无从下手, 很难把问题考虑全面, 最终我们三人共同讨论并设计出了数据库 的雏形, 这时的数据库看起来还十分简陋。 后来我们的开发方式进行了改变, 由 我和一个同学分别扮演客户和商家的角色, 另一位同学扮演数据库角色。 开发过 程中,数据库角色的同学主要考虑优化数据库并满足客户角色和商家角色的要 求,而客户角色和商家角色在完成自己的应用平台的
37、过程中向数据库提出要求, 主要是对权限的申请、 对触发器视图等方面的要求。 这样我们的数据库就大概成 形了,然后我们三人又共同以全面地角度审视了一遍我们的数据库, 提出各自的 意见,最后提交的数据库则是我们三人共同意志的体现。八、源码:.1" <<endl;m_pConnection->ConnectionTimeout=30;m_pConnection->Open(_bstr_t) "Provider=SQLOLEDB;Server=(local);Database=database_zbg;uid=" +i_user+ "pw
38、d=" +i_pwd+"" ,"" , "" ,adModeUnknown);cout<< ".2" <<endl;catch (_com_error e)cout<< "Cannot connect to Database "<<endl;return ;cout<< "已°成¨ | 功| 登ì录"<<endl;("");m_pRecordse
39、t->Open( "select * from provider where p_state='营? a业° | ì中D'" ,(),adOpenDynamic,adLockOptimistic,adCmdText);cout<<目前? ? 营? a业° | ì中D的ì商|家¨<<endl;(ios:left);cout<<setw(20)<< "编à ¨¤号" <<setw(20)&
40、lt;< "名字á" <<setw(20)<< "评¨¤价 度¨¨"<<setw(20)<< " 电ì话? ? " <<setw(20)<< "地ì址? ¤"<<endl;_variant_t vpid,vpname,vpadd,vptel,vplev;while (!m_pRecordset->adoEOF)vpid=m_pRecordse
41、t->GetCollect( "p_id" );2323vpname=m_pRecordset->GetCollect( "p_name");vpadd=m_pRecordset->GetCollect( "p_add" );vptel=m_pRecordset->GetCollect( "p_tel" );vplev=m_pRecordset->GetCollect( "p_lev" );cout<<setw(20)<<( char *)(
42、_bstr_t)vpid<<setw(20)<<( char *)(_bstr_t)vpname<<setw(20)<<< <setw(20)<<( char *)(_bstr_t)vptel<<setw(20)<<( char *)(_bstr_t)vpadd<<endl;m_pRecordset->MoveNext();选商| ¨? 家¨°的 ì编ਤ号 " <<endl;m_pRec
43、ordset->Close();cout<< "请输 o 入¨所¨char pid15;cin>>pid;m_pRecordset->Open(_variant_t)(_bstr_t) "select * from dish where d_pid='" +pid+ "'and d_remain>0" ),(),adOpenDynamic,adLockOptimistic,adCmdText);cout<<请选择菜品 ?<<endl;cout&
44、lt;<setw(20)<< "编à ¨¤号" <<setw(20)<< "名字á" <<setw(20)<< "价格"<<setw(20)<<"剩 o ? ê余? ¨¤数 o y量"<<endl;_variant_t vdid150,vdpid150,vdname,vdprice,vdremain;int cnt=1;while (!m_pRecordset->adoEOF)vdidcnt=m_pRecordset->GetCollect( "d_id" );vdpidcnt=m_pRecordset->GetCollect( "d_pid" );vdname=m_pRecordset->GetCollect( "d_name");vdprice=m_pR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卫生镇健康教育工作制度
- 危重病例抢救工作制度范本
- 侗家儿童多快乐教案
- 原州幼儿园教师工作制度
- 县总工会上下班工作制度
- 县矛盾纠纷调处工作制度
- 县纪委办案安全工作制度
- 反恐协作联络员工作制度
- 变配电工作制度汇编范本
- 合作交流中心工作制度汇编
- 重庆南开中学高2026届高三下学期3月第七次质量检测英语(月考七)+答案
- 2026年全民国家安全教育日专题课件:筑牢国家安全防线 共护人民幸福家园
- 2026德州银行校园招聘38人笔试参考题库及答案解析
- GB/T 31458-2026医院安全防范要求
- 雨课堂学堂在线学堂云《柴油机构造与使用(火箭军工程)》单元测试考核答案
- 游客中心培训
- BMS培训课件教学课件
- 2026年东莞市厚街控股集团有限公司招聘14名工作人员备考题库完整参考答案详解
- 休克课稿教案
- 2025年四川省从“五方面人员”中选拔乡镇领导班子成员考试历年参考题库含答案详解(5套)
- 2024年中原传媒出版传媒集团招聘笔试冲刺题(带答案解析)
评论
0/150
提交评论