数据库课程设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
考试序列号____
论文报告
论文题目:基于PHP后台的购物APP
课程名称:数据库
学院信息工程学院
专业班级电信2班
学号3113002596
姓名蔡子骏
2015年12月22日
项目名称:基于PHP后台的购物APP
所属课程名称:数据库
一、项目背景
近几年,随着智能手机与移动互联网的普及,人们的生活与上网习惯发生了很大的转变。
移动端的用户逐年增加,其中移动互联网用户数在中国网民中占有很大的比重,预计2015年占比将达到90%。
智能手机的普及率也仍在加速,移动互联网简直是无孔不入,相信很快将迎来一个崭新的时代。
而Android和网页是当今流行的互联网技术,利于PHP、MySQL、Java可以开发出商业软件。
二、项目准备
软件:XMAPP、PHPSTORM、Eclipse,其中XMAPP已经集成了Apache、PHP解释器和Mysql 等软件,然后修改XMAPP的相关配置文件,使其能够在局域网访问,开启他后,利用Android手机连接WIFI,即接入局域网,就可以访问电脑的服务器。
PHPSTROM用来编辑PHP文件,PHP通过读取数据库,输出安卓客户端期望的json数据,从而组成了一个完整的客服端、服务端交互过程。
成员:黄柏雄,蔡子骏,杨浩辉,赵锐峰。
其中黄柏雄负责android开发,蔡子骏完成数据库设计和个人中心及其相关设置,杨浩辉和赵锐峰负责登录注册及商品购买流程。
二、软件实现
第一步:MySql数据库设计(个人负责模块)
本人主要负责数据库设计和个人中心及其相关设置,根据组员讨论,我们决定设计一个模仿淘宝的购物APP,我根据APP商城和购买流程,通过ER图方法设计了用户表,商店表,商品表,广告表,订单表和反馈表等等。
另外,负责客户端内个人中心的设置,包括个人资料填写,商品评论反馈,查看订单状态以及收藏商品和店铺的功能。
虽然APP还不够完善,性能不及淘宝,但经过自己能力,利用自己的技术,开发了这款APP,从中学会了很多知识,感觉很充实。
在开发android客户端中,我通过MySql建立数据库,定义数据,设置个人中心的资料,从解决问题的过程中,我对PHP,MySql,Android有了更深的了解。
因为课设时间比较短,可能开发的App中还会有部分Bug,我会努力去解决,继续完善这个软件。
1.数据库设置:
(1)用户表:注册时,插入用户数据,uuid是主码,手机号是unique的,access_token用于用户使用安全的一个设计方法。
(2)商店表:store_id为主码,uuid为外码且非空
(3)商品表:goods_id为主码,store_id为外码且非空
(4)广告表:goods_id和url为主码
(5)订单表:order_id为主码,store_id和goods_id为外码,外码设置非空,这与设计是便于Android软件跳转。
(6)反馈表:id为主码
(7)收藏商品表:collcet_id为主码,uuid,goods_id为外码,外码设置非空
(8)收藏店铺表:uuid,store_id设置为主码
(9)商品评论表:comment_id为主码,uuid,goods_id为外码,外码为非空
(10)商品颜色表:color和goods_id为主码
(11)商品尺寸表:size和goods_id为主码
(12)商品图片表:url和goods_id为主码
(13)商店话题表:主码为m_id,外码为shop_id
(14)话题图片表:主码为image_id,外码为m_id
(15)手机表:phone为主码,该表拿来验证邮箱
2.客户端“个人中心”设置:
例:获取个人资料
edit by蔡子骏on2015.12.23
方法:GET
URL
http://192.168.191.1:80/android/personal/person.php?uuid="用户uuid"
描述获取用户详细信息
其他状态返回值
第二步:PHP(服务器端)
PHP(外文名:PHP:Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。
语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。
PHP独特的语法混合了C、Java、Perl 以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页。
用PHP 做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
因为这次项目只是和Android交互,不需要HTML,只需要链接数据库查询相应内容,转化为Android客户端需要的json数据,再输出,主要是echo,json_decode(),json_echo()等方法使用。
在这次课程设计中,我们用了
PHPStorm这款软件开发。
第三步:Android(客户端)
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android 操作系统最初由Andy Rubin开发,主要支持手机。
在这次项目中,Android通过服务器获得的json数据,显示在界面上,因为本次课程设计主要不是android,所以具体实现就不详细说了。
三、需求总结
1,用户可以用手机号码验证注册,注册时需要填写注册信息
2,登陆成功后,用户可以浏览,选择颜色和尺寸等购买,收藏,评论商品收藏店铺等。
3,在个人中心,用户可以更改个人资料,反馈自己的意见,还可以查看自己的订单状态和订单数量,收藏的商品和店铺等。
四、软件测试
软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。
换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。
软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
在这课设中,我们主要用下面几种测试方法:
(1)黑盒测试
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
我们开发好android app后,给不进行我们项目开发的同学进行了测试,通过测试,我们发现了不少bug,我们进一步进行了修复,完善项目。
(2)白盒测试
白盒测试,又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。
我们开发人员根据开发的代码逻辑来进行了一系列测试,不断修复错误。
(3)灰盒测试
灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
五、项目心得
以前没有过数据库课程设计的经验,作为第一次,我抱着试试看的态度去写,一开始看了只有这么几个模块是心里挺高兴的,但是当我真真正正地去把一个操作写成功时,很多意想不到的情况发生了。
有时候会为了一个操作不能调试成功而整个晚上都不能去安心做其他的作业。
编程是一个很繁琐的过程,要考虑到很多错误转移情况,在这期间会有很多以前不曾想过的问题出现,次数多了,不免会有觉得做不下去的感觉。
但是我从中发现,只要一步一步调试、静下心来看待问题,再复杂再微小的问题都会迎刃而解,当一个程序被调试出来时,那时的快乐相比与任何困难都值得的。
最后我要感谢我的同组的战友,因为单靠我自己一个人,肯定很难去完成一个项目,在此次课程设计过程中与他们探讨深究,使我受益颇多,在此,我表示衷心的感谢。