简易的在线书籍商城原型设计和实现俯仰之间Johnny

需求差异性:商城后台逻辑区分顾客与商家,功能同样区别设置,同类功能需区别设置具体逻辑判断

逻辑简洁性:简化用户操作逻辑,减少功能层次,减少操作步骤

边界清晰性:功能响应需要设置明确的判断边界条件

a.用户注册:注册成为网站的会员

c.用户信息修改:用户修改个人的基本信息

a.提供电子目录,帮助顾客搜索发现需要的商品

b.进行同类产品比较,帮助顾客进行购买决策

c.购物车功能实现

d.为购买产品下订单

e.撤销和修改订单

f.支付订单

a.检查用户的注册信息

a.处理顾客订单

b.完成客户选购产品的结算,处理客户付款

c.能够进行商品信息发布和修改

d.商品库存管理

模块

功能

功能简述

优先级

完成状态

通用模块

P1

已完成

注册

通过输入框键入用户名、密码、姓名、手机号码等信息,若用户名不重复则写入数据库用户信息表

支付

根据已选择订单订单号,键入用户支付密码,读出数据表中该用户密码,配对成功则完成支付,不匹配则提示错误

注销账户

P3

修改账户信息

P2

查询

顾客模块

生成商品订单

提交订单

通过选择的订单的订单号读出数据表中相应订单信息,进入订单支付环节

加入购物车

通过勾选选项框并输入采购数量,完成心仪商品基本信息,并匹配商品信息,然后将商品基本信息写入购物车表

移除购物车

通过勾选商品,选中希望删除的商品,将相应商品信息从购物车表中删除

订单撤销

通过选择的订单的订单号读出数据表中相应订单信息,将订单信息从订单细节表和订单基本信息表中删除

咨询客服

在后台为客服设置固定关键词及问题语句并设置相应回答,顾客通过对话框输入想要咨询的问题,完成与客服的交流并获取回复

年/月度消费统计

已支付/未完成订单总金额

通过支付完成标志判断该用户已支付/未完成的订单,读出订单金额加和求得已支付/未完成的订单总额

商家模块

查看订单

从数据库中读出该商家账户发布的所有商品的订单信息,进行打印显示

修改订单价格

选中订单,以订单号匹配从数据库中读出对应订单价格,修改后重新存入对应订单的价格栏

订单发货

选中订单,以订单号匹配从数据库中读出对应订单价格,发货后在后台修改相应订单的发货标志位,顾客实时可见状态更新

查看商品

从数据库中读出该商家账户发布的所有商品的信息,打印显示

添加商品

通过输入书籍名称、作者、价格、库存数量、卖方编号并上传封面图等信息,后台分配商品号,写入商品信息表

删除商品

选中商品,通过匹配商品号获取商品信息表中相应商品的数据,并执行删除操作从该表中删去该数据条

修改商品信息

选中商品,通过匹配商品号获取商品信息表中相应商品的数据,重新输入更新后完整的商品信息覆盖该条数据

随着windows以及各种设计软件、开发语言、编程软件的发展,设计并开发电子商务系统是可行的。

在设计阶段,可以通过使用MSVisio工具绘制系统总体结构功能图、ER图;使用PowerDesigner工具设计概念模型、物理模型、数据字典;使用NavicatforMySQL工具生成数据库;

在编码阶段,可以使用PHP、HTML、js、JavaScript等开发语言、notepad++编码工具相结合实现编码,使用XAMPP工具实现系统运行,最终完成系统开发。

以上这些技术和开发工具都是当下比较成熟的,可以完成该系统的开发,并且有很多当前已经成功的系统可以作为参考,所以在技术上完全可行。

系统使用最流行的网页设计形式,并采用浏览器为框架的原生组件进行设计,使用的界面简便容易操作,构造的组建具有诱导性,让用户用起来很是便利简捷。当然数据存储也十分便利与安全,也不会造成死机!所以在操作上也是可行的。

三、系统总体设计

一个管理信息系统常常是一个数据库应用系统,通常由三部分组成:数据库、数据库管理系统、数据库应用程序。

在书籍商城系统中:

数据库存储着顾客基本信息、商家信息、订单信息、商品信息等;

数据库管理系统对数据库进行管理;

数据库应用程序向外给用户提供了一个数据库数据的显示界面,同时获取用户的命令,向内通过数据库管理系统对数据库进行增、删、改等操作,并将数据库对命令的反应输出给用户。

根据需求分析,可用亿图制作系统功能结构层次图如下图2:

图2系统功能层次结构图

对应制成ER图如下图3:

图3ER图

由于需要php_admin、t_order0、t_product、t_orderdetail和t_shopcar等几个数据表,则对数据库的实体和关系说明如下:(加下划线表示键码)

实体说明:

用户(php_admin):用户ID(userid)、用户姓名(username)、密码(password)、商家/顾客的标志(usertype)、用户年龄(userage)、手机号(usermobile)

商品(t_product):书籍编码(productcode)、书籍名称(productname)、作者名称(singer)、卖家编码(sellercode)、书籍价格(price)、书籍封面(productimage)、书籍库存(stocknumber)

购物车(t_shopcar):买家ID(userid)、书籍编码(productcode)、购买数量(purchasenumber)

订单详情(t_orderdetail):订单ID(orderid)、产品代码(productcode)、价格(price)、购买数量(purchasenumber)、商品图片(productimage)

关系说明如下:

一个买家(admin)可以有多个订单(order),一个订单(order)只对应一个买家(admin)。

一个卖家(admin)可以拥有多种商品(product),一种商品(product)只能对应一个卖家(admin)。

一个订单(order)至少包含一种商品(product),一种商品(product)可以对应多个订单(order)。

一个订单(order)至少对应一个订单详情(orderdetail),一个订单详情(orderdetail)只能对应一个订单(order)。

一种商品(product)可以对应一个订单详情(orderdetail),一个订单详情(orderdetail)只能对应一种商品(product)。

一个顾客只拥有一个购物车,一个购物车也只能对应一个顾客,是一对一的关系。而一个购物车里可以存放多个购买书籍的信息,多个购买的书籍对应一个购物车,是一对多的关系。

四、数据库设计

将第四步中的ER图用Powerdesigner进行设计,得到概念模型如下图4所示:

图4概念模型图

将图4中的概念模型用Powerdesigner生成物理模型如下图5所示:

图5物理模型图

根据物理模型用Powerdesigner生成Sql脚本,部分脚本语言如下(为避免冗杂,其余略):

/*==============================================================*/

/*Table:admin*/

createtableadmin

(

useridvarchar(200)notnull,

usernamevarchar(50)null,

passwordvarchar(50)null,

tradepasswordchar(6)null,

usertypechar(1)null,

Ispaychar(1)null

Issendchar(1)null

constraintPK_ADMINprimarykey(userid)

);

/*Table:t_shopcart*/

createtablet_shopcar

Useridchar(50)notnull,

productcodeintegernull,

Purchasenumberintegernull

constraintPK_PRODUCTprimarykey(userid)

/*Table:"t_order0"*/

createtable"t_order0"

orderidintegernotnull,

useridchar(50)notnull,

ordercodechar(12)notnull,

orderpricedecimal(12)null,

ispaychar(1)notnull,

constraintPK_ORDERprimarykey(orderid)

/*Table:orderdetail*/

createtableorderdetail

orderidinteger(11)notnull,

productcodeinteger(6)notnull,

pricedecimal(10)null,

purchasenumberinteger(200)null,

productimagechar(200)null,

constraintPK_ORDERDETAILprimarykeyclustered(orderid,productcode)

/*Table:product*/

createtableproduct

productcodenumeric(6)notnull,

productnamevarchar(50)null,

sellercodechar(6)null,

productimagevarchar(200)null,

stocknumbernumeric(11)null,

Writerchar(50)null

constraintPK_PRODUCTprimarykey(productcode)

表单号

表单名

php_admin

用户信息表

储存用户个人信息

t_product

商品信息表

储存商品信息

t_order0

订单信息表

储存订单信息

T_orderdetail

订单物品详情

订单中各种商品的具体信息

t_shopcar

购物车表

储存用户购物车信息

(1)mysql_connect(server,user,pwd,newlink,clientflag):用于打开非持久的MySQL连接,如果成功,则返回一个MySQL连接标识,失败则返回FALSE。

(2)mysql_select_db(connection,database):函数设置活动的MySQL数据库。如果成功,则该函数返回TRUE,如果失败,则返回FALSE。

(3)mysql_query(connection,query):执行一条MySQL查询,仅对SELECT,SHOW,EXPLAIN或DESCRIBE语句返回一个资源标识符,如果查询执行不正确则返回FALSE。

(4)mysql_affected_rows(link_identifier):函数返回前一次MySQL操作所影响的记录行数,执行成功,则返回受影响的行的数目,如果最近一次查询失败的话,函数返回-1。

(5)mysql_fetch_array(data):函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有返回根据从结果集取得的行生成的数组,如果没有更多行则返回FALSE。

mysql_close(connection):关闭数据库连接。

图6数据流图

五、系统实施

$RS=mysql_query($sql);

$row=mysql_fetch_array($RS);

$flag=$row[0];

$_SESSION["username"]=$name;

$_SESSION["flag"]=$flag;

}

{

echo"";

mysql_close($con);

图8注册界面

2)功能

注册模块进行用户个人信息填写,选择注册的账户类型,输入用户账号、用户、密码、用户姓名、用户年龄、用户手机等信息完成注册。信息按格式填写好后即可注册成功。

由于用户ID是唯一的,所以采用Ajax技术检测重名.

3)实现

运用一个表单form,包含五个文本输入框以及注册、返回两个button按钮。当用户名填写完后,如果用户名已被注册,则会立即给出提示信息。点击注册时,检验信息填写是否符合格式要求。若不符合要求则给出提示信息。若信息填写正确,则连接数据库,用insert语句将该新用户的信息置入user表。

4)部分代码

sql代码如下:

header("Cache-Control:no-cache,post-check=0,pre-check=0");

header("Content-type:text/html;charset=gb2312");

$userid=$_POST['userid'];

$password=$_POST['password'];

$username=$_POST['username'];

$userage=$_POST['userage'];

$usermobile=$_POST['usermobile'];

$usertype=$_POST['usertype'];

$con=mysql_connect("localhost","root","sql");

mysql_select_db("qingzhou",$con);

mysql_query("setnamesgb2312");

$sql1="insertintophp_admin(userid,username,userage,password,usermobile,usertype)values('$userid','$username','$userage','$password','$usermobile','$usertype')";

//echo$sql1;die();

$RS0=mysql_query($sql1,$con);

header("location:userlogin.htm");

这部分的代码核心为JavaScript脚本。

functionregister()

if((document.getElementById("txtHint").innerHTML)!='')//Ajax检测用户ID

alert("userid重复");

returnfalse;

if(document.getElementById("txtHint").value=="")

alert("userid不能为空");

if(document.getElementById("username").value=="")

alert("username不能为空");

if(document.getElementById("password").value=="")

alert("password不能为空");

if(document.getElementById("tradepassword").value=="")

alert("交易密码格式不正确");

form1.action="usersave.php";//注册成功,保存到数据库

form1.submit();

functionreback()

form1.action="login.php";//返回登陆界面

功能:顾客模块包括查询商品、购买商品、将商品加入购物车、提交订单、取消订单、查询订单、订单付款、咨询客服、个人信息管理和退出等功能,在顾客模块主界面可分别进入子模块,查询商品子模块可查看商品信息,进行商品购买后,可进入我的订单模块查看我的订单信息,订单状态包括是否已经付款以及订单是否已经发货。

个人中心模块可查看和修改自己的个人信息,同时也可注销自己的账户。退出按钮可退出系统。

顾客页面左侧树列表图如下:

图9选择商品界面

图10生成订单

图11生成订单成功

①:查看商品界面可以通过专辑名称,或歌手名称查询自己想购买的专辑,同时有分页功能。

②:可以选择喜欢的专辑添加进入购物车

④:支付界面可进行订单确认并付款,需要输入支付人的账号密码,核实正确后才能付款成功,也可取消订单或返回上一界面。(此处支付密码的验证为验收后新增)

②:加入购物车时,通过存储在checkboxes里的信息,往t_shopcar表中加入勾选专辑的编码信息,以及购买的数量信息。

②:根据用户在选择商品界面时输入的参数如购买商品代码、及购买数量等合并存储在checkboxes的数组里面,然后通过超链接的方式跳转到添加订单界面,并且将订单数据$_POST传递过来,而在添加订单的过程中,直接调用Navicat中的存储过程对t_product表格的库存,t_order0表格以及t_orderdetail表格中的数据进行修改,并遵循rollback原则,即若有一个数据修改失败,则所有数据重新修改,保证表格之间逻辑性的正确。

③:支付界面运用一个表单form,包含一个table、付款、返回和两个button按钮。进入支付界面后,先检查库存,如果库存不足则给出提示信息,如果库存足够则马上把订单信息写入数据库t_order0表中,订单状态为未付款。点击付款后就更新数据库中t_product表的库存值和t_order0表的订单状态为已付款。点击取消订单就删除数据库t_order0表中的订单信息。

HTML代码部分省去了很多,主要展示部分SQL语句(这里列出分页功能的代码,之后的模块中不再展示分页功能):

session_start();

if(($_SESSION['userid']==''))

$productname=$_POST['productname'];

$singer=$_POST['singer'];

$SQL="select*fromt_productwhereproductnamelike'%".$productname."%'";

if($singer)

$SQL="select*fromt_productwheresingerlike'%".$singer."%'";

$RS0=mysql_query($SQL,$con);

//Script代码部分

THE END
1.数据流程图(购物网站数据流程图).pdfD2 商品信息表 维护 管理员 客户 P3 订单管理 F4 订单信息 维护 F7 订购信息 F2 新闻信息 P4 F2 新闻信息 F3 新闻评论 新闻管理维 护 F3新闻评论 图 3.3 一层数据流程图 3.4.3 数据流程图二层图 二层数据流图是对一层数据流程图的进一步分解,是研究子系统内部的数据 处理,数据存储,信息流动与交换情况的...https://m.book118.com/html/2022/0804/5332024101004320.shtm
2.网上购物系统详细精炼版(UML类图时序图本文档的读者对象:项目经理、系统分析师、项目开发人员、客户代表。 定义 网上购物系统作为B2B,B2C(Business to Customer,即企业对消费者),C2C(Customer to Customer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。本文主要考虑的是如何建设B2C的网上购物系统。 https://www.taodocs.com/p-631780680.html
3.阅读以下说明以及数据流图,回答问题1至问题5。说明某银行...阅读下列说明以及数据流图,回答问题1至问题3,将解答填入答题纸的对应栏内。[说明] 某学校建立了一 阅读下列说明以及数据流图,回答问题1至问题3,将解答填入答题纸的对应栏内。 [说明] 某学校建立了一个网上作业提交与管理系统,基本功能描述如下: (1)账号和密码。任课老师用账号和密码登录系统后,提交所有选课学生...https://www.shangxueba.cn/1854175.html
4.某电子商务系统采用以数据库为中心的集成方式改进购物车的功能...(7)生成报表。根据管理员和商家设置的报表选项,从订单表、商品表以及商品分类表中读取数据,调用第三方服务Crystal Reports生成相关报表。 (8)维护信息。管理员维护(增、删、改、查)顾客表、商品分类表和商品表中的信息。 现采用结构化方法实现上述需求,在系统分析阶段得到如图1-1所示的顶层数据流图和图1-2所示的...https://www.cnitpm.com/st/381218181.html
5.网上购物系统的设计网上购物系统,集商品制造商,商品供应商的相关信息,输入到数据库中,严格按照数据库设计的具体步骤:需求分析阶段就是要研究网上购物系统的具体分类和实施过程流图。概念设计阶段要完成数据抽象与局部视图设计还有视图的集成。逻辑结构设计阶段要把E-R图转化为关系模式并且把我输入的五张表结合在一起完成一个总关系表。最...https://www.360doc.cn/article/12109864_375877153.html
6.软件需求分析复习指南(二)附件中图(a) 和(b) 分别给出了该系统的顶层数据流图和0层数据流图的初稿。 【问题1】 根据说明,将图(a)中的E1?E3填充完整。 【问题2】 图(a)中缺少三条数据流,根据说明,分别指出这三条数据流的起点和终点。(注: 数据流的起点和终点均采用图中的符号和描述) ...https://developer.aliyun.com/article/1249157
7.购物时代的数据流利用大数据技术,挖掘网络数据和用户数据的“隐形金矿”,将成为公司成功转型的突破口。人类的发展史有言在先:凡事皆有两面性,既然有好的一面,就会有坏的一面,矛盾始终相对。那么,...https://www.jianshu.com/p/499d3011a711
1.数据流图DFD购物系统的数据流图dfd四、DFD图典型错误 五、DFD模型总结 数据流图(Data Flow Diagram,DFD)是用来描述系统的逻辑模型,在数据流图中没有任何具体的物理元素,只是描绘信息在系统中的流动和处理情况。并且因为数据流图是逻辑系统的图形表示,即使是非计算机专业的人员也能理解。 https://blog.csdn.net/qq_39072304/article/details/132848965
2.购物系统业务架构设计图购物系统顺序图该顺序图描述了用户、书籍管理员、系统维护人员的操作顺序,主要使用了opt等结构化控制,涉及了用户、书籍管理员、系统维护人员、商品、订单、购物车这些对象。 2、顺序图中的对象描述 用户:主动对象 书籍管理员:主动对象 系统维护人员:主动对象 商品:被动对象 ...https://blog.51cto.com/u_16099244/11875251
3.网上购物系统数据流图网上购物系统数据流图是一种图形工具,用于描述网上购物系统中数据的流动和处理过程,可以发现系统设计中的潜在问题或矛盾,从而在开发阶段更容易解决.https://boardmix.cn/community/Y-Gyuo0QGQUa5D1NfC_Gxg/
4.网上购物系统详细精炼版(UML,类图,时序图,数据流图)(DOC).docx9系统功能概述15 HYPERLINK l bookmark16 5运行环境规定15 HYPERLINK l bookmark18 设备23 HYPERLINK l bookmark20 支持软件23 HYPERLINK l bookmark22 控制24 HYPERLINK l bookmark24 用户确认函25XXXXXXXX需求说明书XXXXXXXX需求说明书 订货单文件动态商品信息文件图1-91层数据流图B用户图1-111层数据流图D图1-...https://m.renrendoc.com/paper/224136127.html
5.数据流图:四大要素全解析!秘密就在这里这四个要素之间的关系可以通过数据流图中的连接来表示。数据流图中的箭头表示数据流的传递方向,从一个要素指向另一个要素。通过观察箭头的方向和连接方式,可以了解四个要素之间的关系和互动。 在这个例子中,我们将使用一个简单的在线购物系统来分析数据流图的各要素。 http://www.360doc.com/content/23/1110/18/83425213_1103490305.shtml
6.网上书店系统数据流图流程图模板网上书店e-r图 网上书店E-R图 网上书店系统的数据流图描述了系统中各个实体之间的数据流动和交互过程。该系统包括用户、图书管理员和订单处理模块等主要组件。用户通过注册和登录功能访问系统,浏览图书目录并添加到购物车中。图书管理员负责添加、编辑和删除图书信息,以及管理库存。订单处理模块负责处理用户的订单请求,...https://processon.com/view/5acd6115e4b0518eaca33163
7.B2C电子商务网站策划方案(通用12篇)通过绘制数据流图来帮助确定合理的数据项、确定合适的数据流向、确认合适的数据处理过程, 为系统设计提供信息内容及处理依据。B2C电子商务网站的顶层流程图如图所示: (三) 系统设计阶段 系统设计阶段的任务就是根据系统说明书中的要求, 设计新系统的物理模型, 最终形成系统设计说明书。在这个阶段主要完成系统划分和数据...https://www.360wenmi.com/f/filee6r2ur58.html
8.?2021年10月自考04757信息系统开发与管理真题及答案自考D.系统评价报告 12. BSP 方法中,分析当前的系统支持时,最关键的分析工具是 A.过程/组织矩阵 B.过程/数据类矩阵 C.数据/实体关系矩阵 D. U/C矩阵 13.通常用来描述当前系统组织机构的层次和隶属关系的模型是 A.组织结构图 B.业务流程图 C.数据流图 ...https://www.educity.cn/zikao/320390.html
9.2022软件测试笔试题题库(本站整理)我爱测试网请画出该系统的数据流图,并指出其所包含的加工。 解题思路: 加工: 身份验证 查询成绩 学籍管理 成绩处理 请求分类 5.请尝试使用等价类划分用例设计方法,列出以下场景的有效及无效等价类(5分) 已知,用户注册页面需求: 用户名:长度为 3-19、以字母开头 ...https://www.shanqiansq.com/?p=1111
10.网上购物系统软件设计说明书网上购物系统 软件设计说明书 目录 11. 介绍 目的 范围 定义、缩写词 内容概览 12. 体系结构表示方法 13. 系统要达到的目标和限制 24. 用例视图 系统用例图 商品类别 检索商品 商品详细 顾客注册 修改注册信息 查看订单 顾客登录系统 顾客退出系统 商品放入购物车 管理购物车 下订单 管理员登录系统 管理员退出系...https://doc.mbalib.com/view/9a4bf9ba57718388bec962779b59522f.html
11.小型超市可行性研究报告(通用8篇)2.连锁超级市场配送中心管理系统的数据流程图: 连锁超级市场配送中心管理系统的步骤:连锁门店根据零售记录查看库存情况,确定退货还是配货,要配货就填写配货清单;要退货就发送退货通知到总部库存。 (二)、数据字典 数据字典用来描述数据流图中的数据流、数据存储、处理过程和外部实体。 https://www.ruiwen.com/word/xiaoxingchaoshikexingxingyanjiubaogao.html