数据库课程设计-在线网上订餐系统

上传人:lisu****2020 文档编号:103638218 上传时间:2022-06-09 格式:DOC 页数:24 大小:504.01KB
收藏 版权申诉 举报 下载
数据库课程设计-在线网上订餐系统_第1页
第1页 / 共24页
数据库课程设计-在线网上订餐系统_第2页
第2页 / 共24页
数据库课程设计-在线网上订餐系统_第3页
第3页 / 共24页
资源描述:

《数据库课程设计-在线网上订餐系统》由会员分享,可在线阅读,更多相关《数据库课程设计-在线网上订餐系统(24页珍藏版)》请在装配图网上搜索。

1、数据库课程设计专 业 班 级 学生姓名及学号 课程教学班号 任 课 教 师 实验指导教师 实验地点 机房 2012 2013 学年第 二 学期一、需求分析1.1现状分析现如今普遍使用电话订餐,这种方式订餐虽然较为方便,效率也较高,但是由此引发的一些不良现象不得不重视。例如,定餐后,饭店未能够及时将信息记录存档,由于看不到菜品的图片,顾客不能对菜品有一个直观的感受。同时,电话预约中的诚信问题也不得不考虑,订餐过程中顾客对信息的不明确会产生一定的误解并由此造成人力资源及时间的浪费。这样开发出图文并茂,信息能够及时更新和查看的在线网上订餐系统就具有了重要的意义。1.2客户需求分析客户模块的功能包括:

2、个人信息管理、订餐两大功能。个人信息部分中,包括个人信息修改以及订餐信息查询;订餐部分为选择菜品、订餐状态、付款方式。1.3 商店需求分析商店模块功能包括:包括商店信息管理、订餐确认两个部分。商店信息查询、修改、菜品管理;订餐确认部分为订餐状态、送餐。1.4 管理员需求分析管理员功能模块包括:人员信息管理及系统维护。人员信息管理为:客户注册、商店注册、客户及商店记录查寻。1.5 性能需求分析该系统在性能功能上应达到如下需求:操作简单、界面友好: 完全控件式的页面布局,使得菜品等信息的录入工作更简便,选择菜品是只需点击鼠标即可。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜

3、索等方面都大体实现,顾客对菜品的预定及支付方式;即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能;系统运行应该快速、稳定、高效和可靠;在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。1.6可行性分析随着经济的快速发展,网上订餐已经如雨后春笋般的出现在了许多地方。特别在公司,企业内部,团体订餐已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且口味也越来越挑刺,正因为如此网络订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且

4、也能寻找和发现新的菜品,品尝不同风格的菜品,网络订餐业务在中国有着极大的发展空间以及良好的背景。1.7总体设计原则.开放性、可扩充性、可靠性原则开放系统是生产各种计算机产品普遍遵循的原则,遵循这种标准的产品都符合一些公共的、可以相互操作的标准,能够融洽的在一起工作。开放系统使得各种类型的网络和系统互连简单、标准统一,容易扩展升级。从而适应广大用户需求的多变性和产品的更新换代。.良好的用户操作界面用户操作界面美观、方便、实用,使用户能在较短的时间内掌握其使用方法。.实用性原则任何系统的设计都要考虑其实用性,系统开发的目的是为了实现业务处理自动化、规范化,提高工作效率,减轻工作人员的劳动强度,减少

5、开支。工作平台适用于不同的网络平台。二、概念设计2.1 系统E-R图2.2数据流图 2.3数据字典2.3.1 数据项数据项名/编号含义说明数据类型长度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菜的单价float2d_pid/p10提供商编号intp_id/p11商店唯一性说明varc

6、har9p_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_pid /p24订单中商店标识into_time /p25订餐时间smal

7、ldatetimeo_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时间varchar152.3.2 数据结构数据结构名称含义说明组成客户客户信息p1-p4菜品菜品信息p5-p

8、10商店商店信息p11-p17管理员管理员信息p18-p20订单订单信息p21-p28管理用户管理用户信息P29-p32管理商家管理商家信息P33-p362.3.3 处理过程处理过程名说明输入输出处理注册所有用户用户详细信息注册结果跳转登陆/重新注册登陆所有用户编号与密码登陆成功/失败登陆首页/重新登陆修改用户信息已登录用户相关修改信息修改成功/失败修改存储信息订餐已登录用户菜品、数量订餐成功/失败加入购物车/重新选择修改订餐已订餐用户菜品、数量的修改修改成功/失败加入购物车/重新选择下订单已订餐用户生成订单查询与确认订单已订餐用户提交订单已订餐用户接受订单商店交付相关工作人员送餐送餐员送餐确

9、认菜单修改商店新的菜品、菜品价格修改更新菜谱管理管理员添加或删减用户更新用户信息库信息更新管理员需要更新的信息信息更新三、逻辑结构设计3.1 ER图向关系的初步转换客户(编号,昵称,密码,联系方式,状态)管理员(编号,姓名,密码)商家(编号,名称,密码,商家地址,联系方式,信誉,状态,剩余量,总量)菜(编号,名称,价格,折扣,提供商编号,最后修改时间,状态)订单(客户编号,菜编号,提供商编号,订单时间,数量,客户地址,状态)管理客户(管理员编号,客户编号,时间,操作类别)管理商家(管理员编号,商家编号,时间,操作类别)3.2 E-R具体转换代码客户表:create table client(c

10、_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

11、) 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 (营业中,打烊,

12、歇业)菜谱: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, )订单:creat

13、e 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_n

14、um0), 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), foreign key (m_c_cid) references client (c_id), m_c_time smalldatetime, primary key (m_c_mid,m_c_ci

15、d,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) references 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

16、_p_time), m_c_operation varchar(15) check (m_c_operation in(允许注册,注销账户) )四、完整性、安全性等方面设计4.1完整性设计4.11实体完整性c_id varchar(9) primary key not nullm_id varchar(4) primary key not nullp_id varchar(9) primary key not null4.12表间的关系及参照完整性1)菜谱表参照关系菜谱中的商店标号参照商店表的主码:foreign key (d_pid) references provider(p_id)2)订

17、单表参照关系订单中的客户号参照客户表的主码:foreign key (o_cid) references client (c_id),订单表中的菜谱号参照菜谱表的主码:foreign key (o_did) references dish (d_id),订单表中的商店号参照商店表的主码:foreign key (o_pid) references provider (p_id),3)管理客户表管理客户表中的客户号参照客户表的主码:foreign key (m_c_mid) references manager (m_id),管理客户表中的管理员号参照管理员表的主码:foreign key (m

18、_c_cid) references client (c_id),4)管理商店表管理商店表的商店号参考商店表的主码:foreign key (m_p_mid) references manager (m_id),管理商店表的管理员号参照管理员表的主码:foreign key (m_p_pid) references provider (p_id),4.13自定义完整性1)client表c_id not null check(c_id like c%),c_name c_key not null,c_tel not null check(c_tel like 1%) unique2)manage

19、r表m_id not null check(m_id like m%),m_name,m_key not null,3)provider表p_id not null check(p_id like p%),p_name,p_key, not null,p_tel not null unique check(p_tel like 1%),p_add not null unique,p_state check (p_state in (营业中,打烊,歇业)4)dishd_id,d_name,d_price,d_pid,d_total not null,d_remain int not null c

20、heck (d_remain=0),5)ordo_id,o_cadd not null,o_num int not null check (o_num0),o_state varchar(15) check (o_state in(正常,取消)6)manager_clientm_c_operation check (m_c_operation in(更新,增加,删除)7)manager_providerm_c_operation check (m_c_operation in(允许注册,注销账户) )4.14触发器1)自动更新时间:create trigger o_o_time on ordf

21、or insertasbegindeclare oid intselect oid=o_id from insertedif exists(select*from ordwhere ord.o_id=oid and ord.o_id is not null)update ordset o_time=(select getdate() as today)end2)对d_remain的触发器create trigger o_o_remain on ordfor insertasbegindeclare oid int select oid=o_id from insertedif exists(s

22、elect*from ordwhere o_id=oid and o_id is not null)declare did intselect did=o_did from ord where o_id=oiddeclare onum intselect onum=o_num from ord where o_id=oidupdate dish set d_remain=d_remain-onum where d_id=didend3)评价度增加create trigger o_o_lev on ordfor insertasbegindeclare oid int select oid=o_

23、id from insertedif exists(select*from ordwhere o_id=oid and o_id is not null)declare pid varchar(9)select pid=o_pid from ord where o_id=oidupdate provider set p_lev=p_lev+1where p_id=pidupdate ord set o_state=正常where o_id=oidend4.2安全性设计4.21登录名、用户、授权1)客户(举例)CREATE LOGIN c20112511 WITH PASSWORD = 1234

24、56create user buyijie for login c20112511;grant connect to buyijie;create role c;grant select on providerto c;grant select on dishto c;grant update on dish(d_remain) to c;grant select,insert on ordto c;grant update on clientto c;exec sp_addrolemember c,buyijie2)商店(举例)CREATE LOGIN p20131001 WITH PASS

25、WORD = wuqilongcreate user 东北酒家 for login p20131001;grant connect to 东北酒家;create role p;grant select,delete,insert on dishto p;grant update on dish(d_name,d_price,d_discount,d_total)to p;grant select on providerto p;grant update on provider(p_name,p_tel,p_add,p_state)to p;exec sp_addrolemember p,东北酒

26、家3)管理员管理员进行后台管理,具有所有权限。4.22视图机制1)消费记录:用户名字,菜名,单价,打折,商店,时间,数量create view c_ord(c_name,d_name,d_price,d_discount,p_name,o_time,o_num)asselect c_name,d_name,d_price,d_discount,p_name,o_time,o_numfrom client,provider,dish,ordwhere client.c_id=ord.o_cid and dish.d_id=ord.o_didand provider.p_id=ord.o_pidw

27、ith check option;2)用户查询商店及菜:商店信息与菜的信息create view p_d(p_name,p_lev,p_state,p_tel,d_name,d_price,d_discount,d_remain)asselect p_name,p_lev,p_state,p_tel,d_name,d_price,d_discount,d_remainfrom provider,dishwhere provider.p_id=dish.d_idwith check option;3)商店查询自己的菜品create view p_o_d(p_name,d_id,d_name,d_

28、price,d_discount,d_remain)asselect p_name,d_id,d_name,d_price,d_discount,d_remainfrom provider,dishwhere provider.p_id=dish.d_idwith check option;4)商店生成订单视图create view c_p_d(c_name,c_tel,d_name,d_price,d_discount,o_num,o_cadd)asselect c_name,c_tel,d_name,d_price,d_discount,o_num,o_caddfrom client,di

29、sh,ordwhere client.c_id=ord.o_cid and dish.d_id=ord.o_didwith check option;4.3其他设计4.31主键自增对于dish表及ord表,设计在插入元祖是主键自增。若下一份订单时,让客户自己选择主码,可能会发生冲突;同样也不符合实际情况o_id int identity(10000001,1)d_id int identity(1378001,1)4.32作业设计在每天的0:00:00执行更新数据库中d_remain=d_total五、数据库实现5.1据库的建立启动服务管理器,打开查询分析器,在调试程序窗口输入下列语句:Cre

30、ate database database_zbgOn(name= zbg_data,Filename= E:dbdesign zbg_data.mdf,Size=10mbMaxsize=500mb,Filegrowth=5mb)Log on(name= zbg_log,Filename= E:dbdesign zbg_log.ldf,Size=5mbMaxsize=100mb,Filegrowth=5mb)5.2数据载入1)client表2)managerinsert into manager values(m001,刘诗诗,liushish);insert into manager val

31、ues(m002,郭晶晶,guojingj);insert into manager values(m003,杨幂,yangmi12);3)providerinsert into provider values(p20131001,东北酒家梧桐路12号,4,营业中);insert into provider values(p20131002,学惠园梧桐路21号,3,营业中);insert into provider values(p20131003,东北酒店翟乃路12号,4,打烊);insert into provider values(p20131004,四川酒店淄博路5号,4,歇业);in

32、sert into provider values(p20131005,状元酒店中原路54号,4,营业中);insert into provider values(p20131006,大排档中原路89号,4,打烊);insert into provider values(p20131007,老乡鸡梧桐路13号,4,营业中);4)dishinsert into dish values(大对虾,32.3,0.95,p20131001,500,500);insert into dish values(大对虾,31.3,1,p20131002,300,300);insert into dish val

33、ues(大对虾,30,0.98,p20131007,500,500);insert into dish values(彩花迎宾,22.3,0.97,p20131002,500,500);insert into dish values(彩花迎宾,32.3,0.9,p20131003,500,500);insert into dish values(鱿鱼汤,12.3,1,p20131004,100,100);insert into dish values(狗全席,22.3,1,p20131004,500,500);insert into dish values(狗全席,22.4,1,p201310

34、05,500,500);insert into dish values(龙门鱼,32.3,0.99,p20131005,500,500);insert into dish values(龙门鱼,33,0.98,p20131006,500,500);insert into dish values(叫花鸡,133.2,0.8,p20131001,50,50);insert into dish values(叫花鸡,133,0.81,p20131006,50,50);insert into dish values(叫花鸡,133.1,0.8,p20131007,50,50)5)ordinsert i

35、nto ord values(c20120001,1378001,p20131001,2000-05-01 12:35:29.998,1,梧桐路99号,正常);insert into ord values(c20120001,1378011,p20131001,2000-05-02 12:35:29.998,2,梧桐路99号,正常);insert into ord values(c20120002,1378006,p20131004,2000-05-03 12:35:29.998,3,梧桐路77号,正常);insert into ord values(c20120002,1378007,p20

36、131004,2000-05-04 12:35:29.998,4,梧桐路77号,正常);insert into ord values(c20120002,1378009,p20131005,2000-05-05 12:35:29.998,5,梧桐路77号,正常);insert into ord values(c20120004,1378004,p20131002,2000-05-06 12:35:29.998,6,梧桐路88号,正常);insert into ord values(c20120005,1378004,p20131002,2000-05-07 12:35:29.998,7,梧桐路

37、88号,正常);insert into ord values(c20120006,1378003,p20131007,2000-05-08 12:35:29.998,8,梧桐路66号,正常);insert into ord values(c20120006,1378004,p20131002,2000-05-09 12:35:29.998,9,梧桐路66号,正常);6)manager_clientinsert into manager_client values(m001,c20120001,2013-05-08 12:35:29,增加);insert into manager_client

38、values(m001,c20120002,2013-05-08 12:37:29,增加);insert into manager_client values(m003,c20120003,2013-05-08 12:38:29,增加);insert into manager_client values(m002,c20120004,2013-05-08 12:39:29,增加);insert into manager_client values(m002,c20120005,2013-05-08 13:35:29,增加);insert into manager_client values(m

39、003,c20120006,2013-05-08 14:35:29,增加);7)manager_providerinsert into manager_provider values(m003,p20131001,2013-02-08 14:35:29,允许注册);insert into manager_provider values(m003,p20131002,2013-02-08 15:35:29,允许注册);insert into manager_provider values(m003,p20131003,2013-02-08 16:35:29,允许注册);insert into m

40、anager_provider values(m003,p20131004,2013-02-08 17:35:29,允许注册);insert into manager_provider values(m003,p20131005,2013-02-08 18:35:29,允许注册);insert into manager_provider values(m003,p20131006,2013-02-08 19:35:29,允许注册);insert into manager_provider values(m003,p20131007,2013-02-08 19:39:29,允许注册);六、数据库

41、的运行和维护作为网管员,无论其管理的网络的规模是大还是小,在日常的管理中除了维护网络平稳运行、及时排除网络故障、保护网络安全等工作以外,备份网络中关键数据也是其中的一个非常非常重要的工作环节。网络中的各种故障无非就分两种:软件故障和硬件故障。对于“硬件故障”可以通过维修或更换硬件设备得到及时解决;对于“软件故障”则可以通过重新安装或升级软件、重做网络或应用软件系统等方法及时解决,而且用此方法来解决网络故障大多需要一些基础的、关键的数据支持才能得以恢复正常。但是,网络中诸如此类的关键数据(特别是“应用软件系统”中的关键数据)的损坏或丢失,绝大部分是无法恢复和弥补的。6.1定义并设置备份1.每周1

42、次备份,周日晚0:00:00开始备份,超过四周清空之前的备份。2.每2小时一次日志备份,超过一天清空之前的备份3.每天一次差异备份,时间为0:00:00开始,超过一天自动清除备份。6.2启用维护计划任务在“管理”“数据库维护计划”上右键弹出菜单,选“新建维护计划”,设置数据库维护计划名,并完成向导。6.3运行要求操作系统:Windows xp及以上版本,数据库:SQL server2005,外围平台:Microsoft Visual studio2010内存:2G七、感想及总结:“实践出真知”、“合作才能双赢”,这两句话说的一点也没有错。此次数据库设计过程中,我们三个人通过共同合作、共同协商基

43、本上完成了网上订餐的数据库设计工作。一、需求分析及E-R图设计阶段:在整个设计过程中,我们先是三个人分别查阅资料,了解网上订餐系统的基本功能,接着一道讨论确定了系统的基本需求以及系统的各个局部E-R图,然后合并E-R图,形成了初步的E-R图,后经过多次修改、讨论确定了最终的E-R图。同时也设计了初步的数据流图、数据字典、数据结构等。二、数据库初步设计阶段:我们先是创建数据库,考虑到网上订餐所需的数据库较大,但我们开发的系统并非实际使用的系统,权衡之下,我们设计了最大规模500M的数据库。然后由卜一杰创建基本表、葛万杰准备数据、我负责测试运行。三、外围部分设计阶段:我们考虑管理员主要就是对数据库

44、进行一些维护工作,为此没有设计了管理员操作程序,管理员直接通过后台对数据库进行操作,这样快捷方便,同时也能够及时发现并解决问题,效率高;卜一杰与葛万杰分别设计客户界面与商店界面,他俩在设计过程中,所需的触发器、视图、授权等由我负责完成,同时在设计过程中遇到的一些关于数据库操作的问题也由我来解决。这样既提高了效率,同时又能够达到及时发现问题、及时解决问题。数据库课程设计不仅让我们更进一步了解了数据库这门课程,而且让我们在做事方面也形成了一套很好的想法。我们在做事方面学会了坚持、合作;对待问题要敢于质疑、认真解决;更要和同学们交流,不耻下问。当然,还要培养自己处理解决问题的态度:一丝不苟,严谨认真

45、。在运用SQL Server2005设计数据库的过程中,我们会遇到种种问题,而且每个问题与上下步骤之间都会有联系,一个问题的存在可能会影响到下一个问题的操作。为此,我们要有分析原因,发现问题,再解决问题。不可半途而废,坚持下去,才能有所突破。数据库课程设计目的在于通过对一个实际问题的分析,设计与实现,将原理与应用相结合。在这个过程中,我学会如何把书本上学到的知识用于解决实际问题、培养了自己的动手能力。当然,数据库设计中还有一些问题,我们没有能够考虑到,后续的设计也与最初的想法有一些偏差。原因是:设计过程中,我们发现了一些实际的问题,需要解决;有些问题我们没有遇到,但不代表不存在;网上订餐系统,

46、最好是使用网页的形式呈现出来。总而言之,我们为了数据库设计花费了一定的时间,但这时间花的很值得,因为我们深刻感受到:书上的理论运用到实践中还要很多路要走,很多细节要考虑,切不可眼高手低。虽然数据库课程设计结束了,但我们学习并完善数据库设计的工作还在继续,我们还可以把数据库进一步完善,进一步实现用户友好,多平台操作。备注:题目:网上订餐管理系统组长:XX组员:XXX分工:XXX数据库设计部分(需求分析,E-R图,基本表,数据):三人共同完成。外围部分:XXX和XXX完成。触发器、视图、授权、数据库修改工作:XX完成。课程设计报告:主要由XXX完成、XXX与XXX配合。代码测试、数据库运行:三人共同合作。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!