简易的在线书籍商城原型设计和实现俯仰之间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.订单系统ER图流程图模板订单系统ER图 订单系统用例 er图 订单系统ER图-3 ER图 图书馆系统ER图 管理系统ER图 er图 给想开发订单系统的同学或者开发者提供了一个参考案例。 图中从两个视角出发,一个是用户的视角,另一个是管理员的视角; 每个视角都有各自的实体和属性彼此连接。 订单系统 ER图 模板 作者...https://www.processon.com/view/64a8ce2c14582d54f955b396
2.订单系统ER图订单系统ER图流程图管理 使用模版 机械生产流程图 会员免费 使用模版 超市管理系统流程图 免费 使用模版 考研调剂流程图 免费 使用模版 运维管理组织结构图 会员免费 使用模版 电影购票系统组织结构图 免费 使用模版 通用简约组织结构图 免费 使用模版 物业公司组织结构图 ...https://imiaoban.com/pic/2175.html
3.订单管理系统er图点击右边的链接下载pdf文件:订单管理系统er图.pdf 文章推荐: 订单管理系统的功能 订单管理系统的好处 支付订单管理系统 订单查询系统订单管理系统 客户管理订单管理系统 客户订单管理系统系统 订单管理系统客户管理 订单管理系统结构图 订单管理系统oms功能 oms订单管理系统功能 工作流订单管理系统 订单管理系统架构 互联网...https://www.dugusoft.com/zixun/zixun19505.html
4.《销售管理系统《销售管理系统--ER图》.doc,实例7 销售管理系统 要提高市场竞争力,即要有好的产品质量,同时也要有好的客户服务。企业要作到能及时相应客户的产品需求,更具需求迅速生产,按时交货,就必须有一个好的计划,使得市场销售和生产制造2个环节能够很好地协调配合。 销售管理是https://max.book118.com/html/2018/1105/7151100200001155.shtm
5.订单系统E订单系统E-R图是一种用于描述订单管理系统中实体和关系的图形化工具。它通过展示实体之间的关系和属性,帮助人们理解和设计订单管理系统的结构和功能。制作E-R图时可以利用专业的图形建模工具,并注意准确地描述实体和关系之间的连接和属性。 标签 er图 订单系统...https://www.liuchengtu.com/process/4116.html
6.在线订餐系统的ER图与逻辑图.doc管理员编号 名称 用户编号 姓名 地址 下单时间 总金额 订单状态 编号菜名 原价 菜名的介绍 优惠价 菜系 订单 图片 手机号 订单编号 地址 密码 登录IP 最后登录时间 注册时间 订单改变时间 会员编号 备注 创建时间 据此分析,得到系统的ER图如图2-1所示。 https://www.taodocs.com/p-781972700.html
7.车票预订系统er图理想股票技术论坛车票预订系统ER图描述了系统实体关系,包括车票、用户、订单等关键实体及其之间的关系。系统设计包括功能模块划分,如用户管理、车票查询、预订、支付等。数据流描述各个模块间的数据交互。 ,理想股票技术论坛https://www.55188.com/tag-9388964.html
8.订单结算系统复盘:从0到1商务需要在结算系统选择订单进行结算,结算流程跑完之后,也需要对结算单进行查询,查询这个结算单目前流转到了哪个节点,后续也对报表功能有要求。 所以从商务和产品运营部的角度,结算系统应该具备以下模块和功能,如图3-2所示。 图3-2 (2)发票系统 发票系统是给财务部门使用的,这相当于一个发票管理后台,财务部的主管...https://www.jianshu.com/p/e4d43320d776
1.3.7大量ER图示例内存量也是存储的属性 单个实体间的联系,员工内部自己的领导关系,一对多 注意存在管理人员里的社区领导为隔离人员分配管理人员,就是说单个里面的自我管理,即领导 就是注意两个实体之间可能存在多种关系,这是需要注意的 有ER图得到关系模式 然后就是注意定价 ...https://blog.csdn.net/m0_73553411/article/details/136538465
2.电商系统前后台设计全面解析——订单管理订单管理系统是电商系统中最为复杂的系统,其作为中枢决定着整个商城的运转,我们设计商城的目的就是让用户下单,然后发货,然后订单完成。订单系统是电商系统最重要的模块,没有之一。 订单系统设计的好坏,决定了商城的可用性,与使用价值;订单系统贯穿于整个商城系统,其他各个系统的设计也是为订单系统提供数据支撑。订单的核...https://www.163.com/dy/article/EEGPD8VQ0511805E.html
3.订单管理数据库er图火山引擎是字节跳动旗下的云服务平台,将字节跳动快速发展过程中积累的增长方法、技术能力和应用工具开放给外部企业,提供云基础、视频与内容分发、数智平台VeDI、人工智能、开发与运维等服务,帮助企业在数字化升级中实现持续增长。本页核心内容:订单管理数据库er图https://www.volcengine.com/theme/850393-D-7-1
4.毕业论文供销管理系统集成管理职能,提高管理效率。 本文的第一、二章介绍了什么是ERP、ERP系统的管理思想 、应用ERP与企业的关系及ERP的风险及其预防。以及在国内的发展状况、应用及前景等。在这些知识的基础上,接着主要阐述了供销进销存管理系统的设计高层目标、当前目标,系统要求、总体设计、详细设计、测试等。最后是本次毕业设计的总结和...https://blog.itpub.net/23724111/viewspace-1114171/
5.新闻管理系统ER图新闻管理系统ER图评分: 毕业论文或毕业设计中用到的ER图(新闻管理系统)。 新闻管理2015-06-11 上传大小:28KB 所需:50积分/C币 php期末项目新闻管理系统 php期末项目新闻管理系统 上传者:weixin_45074721时间:2021-07-18 基于Servlet+jsp+SQL Server实现的音乐网站前后台管理系统(系统PPT+项目计划书+ER图设计+需求...https://www.iteye.com/resource/qq_24962473-8794863
6.进销存管理系统er图怎么画零代码企业数字化知识站为了更好地理解实体关系图的绘制过程,以下将详细展开对确定实体的描述。确定实体是绘制ER图的第一步,这一步需要仔细分析进销存管理系统中涉及的主要元素。通常,主要实体包括商品、客户、供应商、订单、库存等。确定这些实体后,才能进一步定义它们之间的关系。例如,商品与订单之间存在“包含”关系,客户与订单之间存在“下...https://www.jiandaoyun.com/blog/article/1067914/
7.管理信息系统04412消除了冗余后的初步er图称为基木er图。消除兀余主耍采用分析方法.即以数据字典和数据流图为依据,根据数据字 典中关于数据项之间逻辑关系的说明来消除兀余。【实验练习】1、下表是某学校学生的成绩报告单,如要开发学校的教务管理信息系统, 请根据下表和上次实验练习的结果,分析该成绩单屮各实体的联系并绘制总e-...https://m.renrendoc.com/paper/162829474.html
8.物流配送管理系统物流ERP管理系统该系统可以实时监控运输状态,预测需求变化,并自动优化配送路线,从而提高物流效率。通过数据分析,智慧物流管理系统还能够提供精细化管理,帮助企业提升服务质量,降低运营风险。 立即试用物流配送管理系统ER图 物流配送管理系统ER图(实体-关系图)用于展示系统中的各个实体及其关系,包括订单、客户、配送、库存等。通过ER图,...https://www.guanmai.cn/os/18366
9.仓库管理系统操作日志实体关系er图仓库管理系统数据库er图实体之间的关系指的是不同实体的联系描述,ER 图中主要定义的关系包括一对一(1:1),一对多(1:N)及多对多(N:M)。根据每个实体之间的关系,选择相应的关系类型,例如客户与订单之间的关系,可以采用1:N的关系模式,表示1个客户可以有多个订单。 第三步:绘制 ER 图 ...https://blog.51cto.com/u_16099280/10422508
10.概念模型图是什么?5个概念模型绘图示例概念图模型是一个简洁直观的总结,它就是能让整个系统一直运行于正轨之上的基本原理,接下来将结合boardmix中的5个概念图模型示例,帮助大家跳出惯用思维,以流程图、ER图形式的不同表达,帮助大家更好的理解概念图的应用。 客户管理概念图 以客户订单管理流程图为例,在客户订单管理一系列框架概念图中,以整个订单管理阶段...https://boardmix.cn/article/conceptual-data-model/
11.车辆管理系统数据流图6)统计管理 统计管理是统计站内的数据,包括用户统计、订单统计、成本统计、资金统计和车辆统计等。 7)线下门店管理 汽车租赁公司的另一辅助模快,包括系统用户管理、门店设置和员工管理。 8)系统管理 系统管理维护模块,包括站点管理、APP管理、基础设置、提醒管理。 https://www.zboao.com/cgal/9154.html
12.物流技术实训报告(精选16篇)它模拟了整个物流的过程,前台包括:管理中心(公司一些资源管理、订单的管理等)、调度中心(对订单进行调度配送)、运输中心(选择车辆运输配送的方案),仓储中心(仓库的进、出库操作),物流市场(资源的购买);后台包括班级、教师、学生管理、系统参数设置等。学生通过模拟与操作可以将理论知识加以巩固,有效地理解物流流程。https://www.ruiwen.com/baogao/6250451.html
13.基于微信小程序的二手闲置交易市场系统:便捷操作,流量入口,节约...图4.2登录顺序图 4.2.2 添加信息模块时序图 管理员、用户、卖家登录后都可以添加信息,添加信息的时序图如图4.3所示。 图4.3添加信息顺序图 4.3 系统数据库设计 4.3.1 数据库ER图设计 系统ER图即系统的实体关系图,是用来描述某个组织(单位)的概念模型,提供表示实体、属性和关系的方法。ER图的基本元素是实体、属性...https://m.bjhwtx.com/h-nd-199138.html