数据库设计技巧

数据库设计技巧,第1张

就我个人的经验来说,数据库虽然在设计上确实需要有一定的经验,但是它并不是最难的。

对于数据的设计其实是对于现实中业务的一种抽象。

就我的习惯的话,我会先对于现实中的业务场景、业务的角色进行分析。

就拿一般的进销存系统来举例吧。

我有一个对于物料管理的仓库,我需要对我的物料的进销存进行管理。

那么我们就需要分析,没有系统的时候,人与人之间的业务是怎么流转的,他们都是通过哪些表单来进行流转的,上下级之间的消息传递和反馈都是怎么进行的。

当知道了业务以后,我们的数据库无非就是对于现实中的业务的一种具现。

对于业务的设计完成以后,就是针对角色的了。

例如:业务的传递都是在业务人员之间的,我们已经整理表单的传递,那角色其实就已经在这些传递中存在了。

但是,业务的角色是业务的角色,我们还要包括财务的角色,那对于财务来说,他需要在哪些环节看到这些业务的单据?并且需要怎么处理?财务的处理结果又包括哪些?不同的处理结果对于下一步的 *** 作又有什么影响。

当我们把这一切的逻辑整理完成后,我们对于数据库的功能上就已经满足了。

接下来的就是抽象数据的分类了。

例如:我们需要对不同的表进行一个分类,我个人喜欢把表分成三种,一种是基础数据表,一种是过程表,一种是结果表。

怎么解释呢?

基础数据表:顾名思义,就是对于基础数据的维护,哪些可以成为基础数据呢?就是我们的业务发生的各个过程中,这些数据都是可以参与其中的,这就是基础数据。

例如:货物的信息,客户的信息。

过程表:就是仅仅在一个过程中使用的表,当这个过程结束了,这个表就没用了。

例如:订单表,付款单表。他们表示的仅仅是订单从下单到最后关闭的这个过程,关闭以后,这个订单表其实我们就不会再去使用它了。

结果表:这个表的数据有一个特点,只允许添加,不允许删除和修改,这个表的数据本身就是对于一种最终结果的表现。

例如:日志表、账单表。

那我们在进行数据库设计的时候,就需要将这些使用情况考虑进去,将不同功能的表进行分离,尽量降低耦合,让相互表的修改不会影响使用。

例如:收款单,我们需要收一笔款的时候,就会生成这个收款单,当款收到后,这个收款单的功能就结束了。

但现实的情况中,可能财务收到了这笔钱,结束了收款单流程后,他发现填错了,本来应该收100,结果收款单写的110。

但是,收款单表示的是过程,当这个过程结束了,我们就不会再需要上一个收款单了,所以,按照我们业务的处理流程,我们应该先生成一笔冲抵的收款单,例如收到-110,然后再生成新的100的收款单。

我们每个月还会有财务统计报表,财务报表因为和现实中的财务账有关,是绝对不允许变动的,因此,这个财务报表就是一个结果表,我们会按月通过批处理程序,将收款单的明细和统计数据放到另一张表中,感觉好像比较冗余,但是这个确实非常必要的。

因为我曾经就遇到过一个情况,我们直接用过程表来进行数据的统计,然后11月30日有一笔收款已经完成了,结果发现收错了,就重新做了个收款单,结果本来已经出了11月结果的账单发生了变化,导致财务实际的处理出现了问题。

因此,数据的冗余有时候是有必要的,我们需要根据不同表的类型进行一些冗余的设计。

对于数据库设计的考虑点还有很多,可能一时半会儿也说不完,大家如果有什么好的思路,也可以在下方评论或关注我给我留言。

42 功能模块设计

层次模块结构是将系统划分为若干子系统,子系统下再划分为若干的模块。而模块是指具备有输入输出、逻辑功能、运行程序和内部数据四种属性的一组程序。在结构化系统设计中,模块一般都是按功能划分的,通常称为功能模块。合理的功能模块的划分能够极大限度地减少重复劳动、提高开发工作的效率并增大系统的可维护性。

以前面的系统分析为基础,将系统分为两大模块,即前台模块和后台模块。

网络购物中心的功能结构如图41所示。

图 41 网络购物中心功能结构图

421 前台模块的功能模块设计

前台模块主要为登陆网站的用户提供商品和服务的信息,填写并提交订单的服务。这样,将前台模块再细分为用户管理模块、订单查询模块、购物车模块、修改个人资料模块、留言板模块。顾名思义,这些模块的名称基本概括了它们的功能。下面详细说明一下这些功能模块的设计:

(1)用户管理模块:

为了方便于网站的管理,必须由一套完整的用户管理体系。该网站用户管理模块主要实现用户的注册、登录、找回密码3方面功能。

(2)购物车模块:

在超市购物,可以根据自己的需要将很多种商品挑选至购物车或购物篮中,然后到收银台结款。而在网上虚拟的商城中,当然没有办法使用真正的购物工具,因此,通常都会采用一种被称为“购物车”的技术来模拟现实生活。在网上商城中,所选商品须通过购物车进行暂存,然后生产订单。这种技术使用起来十分方便,不但可以随时添加、查看、修改、清空购物车中的内容,还可以随时去收银台结款。

(3)订单管理模块:

用户提交订单后,通过产生的订单号查询订单信息及执行状态。只需要根据用户录入的订单号在数据表中查询处对应的货品信息即可。

(4)个人资料管理模块:

用户资料修改时为用户更改个人信息所提供的窗口,为了保护用户信息部受非法侵害,用户只有登录网页后才有权限修改个人资料。

(5)留言板管理模块:

留言板是一个商务网站中不可缺少的组成部分,它可以增进用户与网站之间的交流。在现实网络开发中存在着各种各样的留言板,但它们都由基于浏览留言板及添加留言板2部分组成。

这样,子模块各自的内容基本设计好。下面可以设计如何将这些模块组织在一起,构成一个结构比较合理的前台了。除了在主页中建立面向其他模块的链接外,也要在其他模块中建立返回主页面的链接。另外各个模块间也应该互相链接起来。

422 后台管理模块的功能模块设计

后台管理模块的功能是对站内的资源进行管理和维护。以后台的业务流程分析和前台各个模块的设计为基础、根据用户的需求分析来确定后台管理模块应具有的功能。后台管理模块的各个子功能模块如下:

(1) 管理员身份验证模块:

为合法用户提供一个后台入口。该模块的功能是对管理员身份进行能够验证。用户输入登录ID和密码后,系统将判断登录ID及密码的有效性,如果通过验证则状态后台主页,反之则提示错误。

(2) 商品管理模块:

向商品表插入前台首页展示的商品信息,也就是添加商品信息的功能。

(3) 处理订单模块:

网站管理者对用户订单的执行和编辑状态。

(4) 用户信息管理模块:

查询注册所有用户,对一些非法或失信用户进行删除 *** 作 。

(5) 公告信息管理模块:

网站向用户发布最新公告信息。

(6) 链接信息管理模块:

管理员向前台首页添加友情链接信息。

43 数据库设计

数据库是数据库应用程序的重要组成部分。一个设计结构合理的数据库对于应用程序的开发效率和程序的性能都是非常重要的。数据库的设计过程大致如下:

(1) 根据用户需求,确定数据库中要保存的数据信息。对用户需求进行分析时数据库设计的第一个阶段。不断的调查与研究用户需求,了解企业运作流程等系统需求,使设计概念模型的基础。

(2) 设计数据库的概念模型。概念模型是按用户的观点来对数据建模,使用与进行信息世界建模的工具。它对整个数据库的设计具有深刻的影响。

(3) 逻辑结构设计。逻辑结构是把概念结构转化为与所采用的数据库管理系统所支持的数据模型相符合的过程。

(4) 数据库的实施和维护。

在设计好前台与后台的功能模块后,就开始进行数据库的设计了。根据网站系统的分析,数据库是整个网站的核心。从前台显示的信息到后台 *** 作的对象,都是围绕数据库展开的。

431 E-R图

E-R图是一种概念模型。概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是显示世界到信息世界的第一层抽象,使数据库设计人员进行数据库设计的有利工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型一方面应该具有较强的语义表达能力,能够方便、直接的表达应该用众的各种语义知识,另一方面他还应该简单、清晰并且易于用户理解[7]。以下是各个数据表的实体图。

(1)商品信息表tb_Ware的实体图

图 42 商品信息表tb_Ware的实体图

(2)用户信息表tb_User的实体图

图 43 用户信息表tb_User的实体图

(3)留言信息表tb_Text的实体图

图 44 留言信息表tb_Text的实体图

(4) 订单生成表tb_Sub的实体图

图 45 订单生成表tb_Sub的实体图

(5)订单商品表tb_Shop的实体图

图 46 订单商品表tb_Shop的实体图

(6)超级链接表tb_Link的实体图

图 47 超级链接表tb_Link的实体图

(7)管理员信息表tb_Admin的实体图

图 48 管理员信息表tb_Admin的实体图

(8)公告信息表tb_Affiche的实体图

图 49 公告信息表tb_Affiche的实体图

(9)总体E_R图

图 410 总体E-R图

432 基本表设计

表的设计是这次设计的一个核心内容。根据前面对网站前台与后台功能模块的分析和对数据库中实体关系的设计,可以看到网站中所用到的数据信息基本包括:商品信息、用户信息、留言信息、订单信息、超级链接信息、管理员信息、公告信息等。下面是为数据库设计的表:

(1) 商品信息表tb_Ware

商品信息表tb_Ware用来保存商品的基础信息。结构如表41所示。

表41 tb_Ware的结构

字段名称 数据类型 长度 是否允许空 是否为主键 字段描述

Wareid Int 4 否 是 货物编号

Warename Varchar 50 否 否 货物名称

Wareprice Bigint 8 否 否 货物价格

Waretype Varchar 20 否 否 货物类型

Wareintro Text 16 否 否 货物介绍

Wareimage Varchar 50 否 否 路径

Wareif Int 4 否 否 是否推荐

Dattime Datetime 8 否 否 发布时间

(2) 用户信息表tb_User

用户信息表tb_User用来保存用户信息。表tb_User的结构如表42下。

表42 tb_User的结构

字段名称 数据类型 长度 是否允许空 是否为主键 字段描述

Userid Int 4 否 是 用户ID

Username Varchar 50 否 否 用户名

Rname Varchar 40 否 否 真实姓名

Userpass Varchar 16 否 否 用户密码

Email Varchar 50 否 否 Email

Address Varchar 80 否 否 用户地址

Photo Varchar 30 否 否 联系电话

Question Varchar 50 否 否 密码问题

Result Varchar 50 否 否 答案

Dattime Datetime 8 否 否 注册时间

(3) 留言信息表tb_Text

留言信息表tb_Text用来记录留言信息。表tb_Text的结构如表43所示。

表43 tb_Text的结构

字段名称 数据类型 长度 是否允许空 是否为主键 字段描述

Textid Int 4 否 是 主题ID

Username Varchar 20 否 否 作者姓名

Email Varchar 50 否 否 Email

Dattime Datetime 8 否 否 发布时间

Textname Varchar 50 否 否 主题名称

Textgut Text 16 否 否 留言内容

(4) 订单生成表tb_Sub

订单生成表tb_Sub用来记录新生成的订单。表tb_Sub的结构如表44所示。

表44 tb_Sub的结构

字段名称 数据类型 长度 是否允许空 是否为主键 字段描述

Sub Varchar 50 否 是 订单编号

Username Varchar 20 否 否 用户名

Rname Varchar 50 否 否 真实姓名

Spdate Datetime 8 否 否 订购日期

Email Varchar 50 否 否 Email

Address Varchar 80 否 否 地址

Post Varchar 50 否 否 邮编

Payment Char 12 否 否 付款方式

Photo Varchar 30 否 否 ****

Carry Varchar 30 否 否 运送方式

Spif Int 4 否 否 订单核对

Other Text 16 否 否 其它

(5) 订单商品表tb_Shop

订单商品表tb_Shop用来记录某一订单中所定购的商品的详细信息。表tb_Shop的结构如表45所示。

表45 tb_Shop的结构

字段名称 数据类型 长度 是否允许空 是否为主键 字段描述

Subid Varchar 50 否 否 订单id

Warename Varchar 50 否 否 货物名称

Price Bigint 8 否 否 货物价格

Wsum Bigint 8 否 否 货物数量

Wcount Bigint 8 否 否 统计

(6) 超级链接表tb_Link

超级链接表tb_Link主要用于记录调价的超级链接信息。表tb_Link的结构如表46所示。

表46 tb_Link的结构

字段名称 数据类型 长度 是否允许空 是否为主键 字段描述

Lname Varchar 50 否 否 链接名

Laddress Varchar 50 否 否 链接网址

Ldatetime Datetime 8 否 否 发布时间

(7) 管理员信息表tb_Admin

管理员信息表tb_Admin主要用于记录管理员的信息。表tb_Admin的结构如表47所示。

表47 tb_Admin的结构

字段名称 数据类型 长度 是否允许空 是否为主键 字段描述

Id Int 4 否 否 管理员ID

Admin Varchar 30 否 否 管理员名

Adminpass Varchar 16 否 否 管理员密码

(8) 公告信息表tb_Affiche

公告信息表tb_Affiche主要用于记录后台调价的公共信息。表tb_Affiche的结构如表48所示。

表48 tb_Affiche的结构

字段名称 数据类型 长度 是否允许空 是否为主键 字段描述

Test Text 16 否 否 公告内容

Dattime Datetime 8 否 否 公告时间

第5章 系统实现

在上一章着重讨论了系统各个模块功能的设计,并详细分析了每一个模块的功能。在本章将具体讨论如何实现功能模块,最终实现整个系统。经过这个阶段的设计工作,应该得出对目标系统的描述,从而在编码阶段可以把这个描述直接翻译成用JSP网页设计语言书写的程序。

51 程序设计

本系统设计的网站在设计过程中包含页面(HTML)的设计以及客户端验证机制(JavaScript)的设计。JavaScript也叫小脚本语言,他是一种非常流行的动态网页技术。他不仅能够实现网页的动态效果,而且能够在一定程度上检测网页的错误,从而在一定程度上实现网站的安全。本系统应用服务器端JSP动态网页技术,以及在Serverlet和JavaBean的可重用组件技术的支持下,结合客户端动态网页技术Javascript以及与HTML的无缝结合的设计,从而方便系统的实现[10]。

52 系统页面的设计与实现

如果将网站比作一个人的话,服务器就像大脑,数据库就像五脏六腑,其内嵌的Java和JavaScript组合起来就像是细胞与神经,而网页就是这个人的皮肉。网页将网站的各个组成部分包裹起来,形成易懂并且美观的外表展示给大家。浏览者登陆网站后看到的就是一个个网页的组合。所以设计和实现每一个网页也是非常重要的工作。

随着科技的高速发展,众多网页制作的应用软件应运而生。相对于传统的动态网页开发工具而言,由于继承了Java语言的许多优点,用JSP开发动态网站十分方便,开发效率较高。此外,JSP还具有强大的组件(Java Bean)支持功能,可以方便地实现组件复用,进一步提高了开发效率。

在整个网页的制作过程中,都是结合使用HTML语言来实现设计的。系统的页面设计决定了网站的风格, 制作好的网站不仅提供给营销商,更多的要供浏览者浏览。所以整个网站系统应注重的是:易导航性、易 *** 作性和友好的交互界面。因此,网站的设计最好要简洁、明了、格调清新、实用、易于使用和维护。在页面的风格上应保持统一,这里采用CSS样式表将所有页面的字体、字号、颜色以及超链接的样式做统一定义。

53 前台功能模块的实现

整个系统分为了前台功能模块和后台功能模块。下面详细讨论主要的几个功能模块的程序实现。在每个模块的介绍中,将具体说明一些涉及要点。

前台功能模块分为用户管理模块、订单查询模块、购物车模块、修改个人资料模块、留言板模块5个部分。前台首页主要有以下几个部分:

(1)网站导航:主要用户显示网站的旗帜广告、各功能模块导航;

(2)用户登录:用户在此注册、登录或找回密码;

(3)商品分类搜索:用户按商品类别进行搜索显示;

(4)销售排行榜:按照商品的销售数量显示销售排行信息;

(5)商品展示区:按后台添加商品的时间顺序展示商品;

(6)友情链接:显示友情链接信息;

(7)后台登录入口:管理员可以通过该入口登录后台。

首页运行结果如图51所示。

图 51 首页运行结果

531 用户管理模块

用户管理模块主要实现用户的注册、登录、找回密码等功能。

1、 用户注册

当用户第一次登录时首先要在网站上注册,成为会员用户才可以在网站上购物,注册页面必须填写一些用户的基本信息,如用户名、密码、联系电话等信息。要注意的是,在用户注册页面user/indexhtm中用户自定义JavaScript检验用户注册信息不允许为空。

用户注册页面user/indexhtm如图52所示。

图 52 用户注册页面运行结果

为了便于网站对用户的管理,在indexhtm用户注册页面接收到的注册信息要经过严格的过滤,保证注册用户名的唯一性,在提交表单后需要对数据表中的数据进行查询,如果没有找到,则在插入数据表时提示注册成功,否则提示此用户已被占用请重新注册。

用户注册的流程图如图53所示。

图 53用户注册系统流程图

2、用户登录

用户登录窗口设置在首页上,主要用来接收用户录入的用户名及密码。单击“注册”按钮时,会提交到user/indexhtm页面执行;单击“登录”按钮时,系统将对输入的用户名和密码进行验证,如果数据表中用户名和密码存在就显示登陆成功,并返回首页,否则d出错误提示信息。

用户登录的流程图如图54所示。

图 54 用户登录系统流程图

3、找回密码

当密码以外丢失会给用户带来不必要的麻烦,重新注册一个新的用户即浪费了时间,也浪费网站的资源,如果用户只记住自己注册的用户名及电子邮箱名并提供密码提示的问题和答案就可以找回密码。找回密码页面user/passhtm如图55所示。

图 55找回密码页面运行结果

用户单击“查找”按钮,系统会将伤表中所示的数据表单提交到user/resjsp中。user/resjsp页用来验证提交过来的四个条件是否完全符合数据库中的查找条件,只有符合才能显示密码结果,否则d出“你输入信息有误”的提示对话框。

532 用户资料修改模块

用户资料修改时为用户更改个人信息所提供的窗口,用户只有登录网页后才有权限修改个人资料信息。

用户资料修改模块在前台主页的导航条上,单击“修改资料”链接,进入用户资料修改页面,该页面主要用户修改用户信息。用户资料修改页面如图56所示。

图 56 用户资料修改页面运行结果

个人信息修改完毕后,要将修改后的数据信息更新到注册数据表中,单击“修改”按钮,如果提交的数据无误,将d出“数据更新成功”的消息对话框;否则将d出“更新失败”的消息对话框。

用户资料修改模块流程图如图57所示。

图 57 用户资料修改模块流程图

533 购物车模块

购物车模块中,主要包含以下几个功能,即:添加购物车、查看购物车、生成订单和清空购物车。

购物车页运行结果如图58所示。

图 58 购物车页面运行结果

1、 添加购物车

添加购物车就是把用户选中的商品暂时存放在购物车中,当用户在前台首页中单击商品展示区的“购买”按钮时,系统会将该商品的详细信息展示在查看物品清单页面中。用户在单击物品清单页面下方的“放入购物车”链接,便可以将该商品放入购物车中。

添加商品的代码流程是从session中读取shop对象,如果为空则说明还没有进行购物或者已经清空了购物车,需要新建购物车对象;将商品名称与购物车列表中的商品名称对比,如果已经存在,则把商品数量加1。

在这段代码流程中,还使用了集合类型。集合类型在Java中又称为向量,是一元集合,可以加入重复数据,它的作用和数组相同,可以保存一系列数据,但集合类型也有它独特的优点,就是可以方便地对集合内的数据进行查找、增加、删除和修改等 *** 作。

2、 查看购物车

为了方便用户随时查看购物情况,在网站的首页加入了查看购物车的链接,通过它可以将用户所有选中的商品信息放入购物车中显示出来。在程序中使用了一组文本框记录用户购买的商品数量,用户可以在文本框中输入想要购买的数量然购单击“修改”按钮。如果欲删除该商品,可以在数量文本框里输入“0”,并需要单击“修改”按钮来更新购物车中商品的数量。

系统每次只会将1个商品放入购物车中,如果用户需要多个同种商品,可以通过修改商品信息右侧相应文本框的值来完成。 *** 作完成后需要通过单击“修改”按钮来保存 *** 作。

3、 生成订单

生成订单时网上购物商城的最终目的,前面所有功能的实现都是为最后生成一个用户满意的订单作基础,在此要生成一个可供用户随时查询的订单号,还要保存用户订单中所购买的商品信息。当用户确认对购物车不再改变以后,就可以到收银台结帐并生成订单。结帐的流程为:从购物车中读取商品名称,商品数量,商品价格信息,生成一个唯一的订单号,同时也把用户注册的基本信息读取出来,形成一个完整的订单写入数据库。

在生成订单模块中主要使用了调出用户信息并生成唯一订单号,调出用户信息就是完全的对数据库进行 *** 作,利用session对象把登录后的用户名保存起来,在订单生成时把保存的用户名从数据库的用户标中取出即可;生成唯一订单号方法有很多,只要确保订单号码的唯一性及方便用户记录以便于查询自己订单的执行状态即可。

订单生成后,用户单击“提交”按钮,便可以将录入的订单信息保存到数据库中。

4、 清空购物车

清空购物车是指当用户订单生成后,倘若还想继续购物一定要清空购物车再进行选购商品,这样防止重复购物,其实清空购物车实现起来非常简单,只需要将session中存储的shop对象清空即可。

购物车模块流程图如图59所示。

图 59购物车模块流程图

534 订单查询模块

用户提交订单后,通过产生的订单号查询订单信息及执行状态。用户在购物中心首页中单击“订单查询”超链接,就可以进入输入订单号页面,在页面的文本框中输入订单号并单击“提交”按钮,如果订单号输入无误,系统将根据用户录入的订单号在数据表中查询处对应的货品信息并转到订单查询显示页面将货品信息显示出来。

订单查询模块流程图如图510所示。

图 510 订单查询模块流程图

535 留言板模块

留言板模块由浏览留言板和添加留言板两部分组成。下面分别对这两部分进行介绍。

1、浏览留言板

单击网站首页的“留言板”超链接进入留言板页面,在该页面中,主要显示用户所填写的留言,以便其他用户查阅。

留言板中显示的数据是从数据表中检索出来并显示在网页中的,为了方便查看网页信息,使用了分页显示功能。对网页进行分页显示首先要确定记录跨度,就是每页所显示的记录数,在这个网站的留言板中,设定了int pagesize=4,即每页中只允许显示4条留言信息,用户可以通过单击“上一页”、“下一页”、“最后一页”、“第一页”或则从文本框中键入一个数值跳转到相应页浏览留言信息。

记录的总条数可以从数据库中通过查询语句rslast();rowcount=rsgetRow得到,而计算总页数时,根据总页数=总记录数/跨度,如果除不尽就加1的原理,设计代码为:

pagecount=((rowcount%pagesize)==0(rowcount/pagesize);(rowcount/pagesize)+1)。

如果获取文本框中的数据不为空就把它转换成整型数据,然后赋值给当前获取页再做进一步判断;如果获取的页数大于总页数就把总页数赋给获取页数,否则就把获取页数值赋为1。而计算当前记录数时,当前记录数=(获取页数-1)跨度+1。代码如下所示。

int showpage=1;

if(topage!=null){

showpage=IntegerparseInt(topage);

if(showpage>pagecount){

showpage=pagecount;

}else if(showpage<=0){

showpage=1;

}

}

rsabsolute((showpage-1)pagesize+1);

有了以上这几个关键变量,网页分页显示功能基本上已经实现了,下一步就是在当前记录数位置开始循环,当数据库没有记录的时候一定要终止循环程序。代码如下:

for(int i=1;i<=pagesize;i++){

……

if(!rsnext())

break;

}

2、添加留言

添加留言是用户与用户,以及用户与网站之间的一种交流模式,只有把用户想要表达的内容添加至数据库中,才能在浏览留言板中进行显示。

用户在留言板中单击“添加留言”超链接就可以打开添加留言页面,该页面主要用来提交用户输入的留言信息。用户在添加留言页中单击“提交”按钮,系统会将数据表单提交到admin/addlejsp页,该页用来实现江留言内容存入到数据库中。

留言板模块的流程图如图511所示。

图 511 留言板模块流程图

54 后台功能模块的实现

后台功能只允许具有管理员权限的用户使用,它是实现前台功能的基础。后台包括管理员身份验证、添加商品模块、订单信息管理模块、查询用户信息管理模块、添加链接模块、公告信息管理模块。后台首页主要有以下几个部分。

(1)后台导航区:放置管理员可 *** 作项目的链接;

(2) *** 作区:显示所有后台导航的链接信息。

541 管理员登录模块

在前台首页单击管理员入口,将转到管理员登录页面,该页面的功能是对管理员身份进行验证。在管理登录页面中,是通过JavaScript来实现录入数据完整性验证的。用户输入登录ID和密码后单击“登录”按钮时,如果录入数据完整性验证通过,系统会将数据提交到Acheckjsp登录页面,该页面用来判断输入信息在数据库中tb_Admin表是否存在提交的用户名和密码,如果登录ID及密码有效,就保存用户名信息,管理员有权对网站进行维护;反之则提示错误。

登录页面如图512所示。

图 512 管理员登录页面运行结果

流程图如图513所示。

图 513 管理员登录系统流程图

542 添加商品模块

单击导航区中的“添加商品”超链接,系统将打开添加商品页面,该页面主要用于将商品信息添加到数据库中,以提供前台首页商品展示所需要的数据依据。用户单击“添加”按钮后添加商品如图514所示。

图 514 添加商品信息页面运行结果

为了减少人为错误,在提交商品信息时,需要对数据的合法性进行验证,输入的商品价格不能使字符型,而输入的只支持Gif格式等,这些任务由脚本语言JavaScript的函数check()来完成。代码如下。

function check(){

……

if(form1imagevalue==""){

alert("请输入展示的路径");

form1imagefocus();

return false;

}

if(isNaN(form1warepricevalue)){

alert("商品价格输入不正确");

form1warepricefocus();

return false;

}

为了确保商品在数据表中的唯一性,在用户提交表单时,需要先根据用户输入的商品名称对数据表进行查询,确保此商品在数据表中不存在后,方可执行插入 *** 作。这一功能由admin/wcheckjsp来完成。

流程图如图515所示。

图 515 添加商品信息模块流程图

543 订单信息管理模块

用户在前台购物所产生的订单并不能立即执行,需要系统管理员在后台进行订单信息管理审核以确认它的执行性。用户单击导航区中的“订单信息管理”超链接进入用户订单处理页面,该页面上会显示近期所有没被处理的订单。用户订单处理页面显示的是用户基本信息,要想知道订单中所涉及的商品,需要单击对应订单号的超链接打开商品订购详单页面才行。

商品订购详单主要通过提交的订单号从tb_Shop表中查询处对应的商品并显示在页面中,管理员审核后可通过复选框来设置订单是否执行。程序中利用admin/shopjsp来完成这些功能。当选中“是/否”复选框时,系统会根据提交的订单号更新数据表,如果更新成功,则转到spifjsp也执行。

流程图如图516所示。

图 516 订单信息管理模块流程图

544 查询用户信息模块

查询用户信息模块用来完成对注册用户的浏览及删除功能。如果用户蓄意性注册或者在很长时间内没有订单产生,管理员就可以将该用户信息删除。单击导航区中的“查询用户信息”超链接进入用户信息页面,就可以看到用户信息。在这一部分的设计中,也使用了分页显示功能。对于一些失信用户只需要单击右侧的“删除”超链接,即可转到admin/deluserjsp页中做删除处理。

流程图如图517所示。

图 517 查询用户信息模块流程图

545 添加链接模块

用户在后台首页导航区中单击“添加链接”即可进入添加友情链接页面,该页面用户在前台显示友情链接信息。添加链接页面如图518所示。

图 518 添加链接页面运行结果

用户单击“提交”按钮后,系统将添加链接页面的数据表单提交admin/addlinkjsp页面处理。若添加失败,则提示故障信息,并返回页面。

以上就是关于数据库设计技巧全部的内容,包括:数据库设计技巧、求一个ASP课程设计 网上购物系统 做过的朋友们拜托给发下 791419843@qq.com、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9757700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存