文档库 最新最全的文档下载
当前位置:文档库 › 手机钱包的数据库设计剖析

手机钱包的数据库设计剖析

题目: 手机钱包管理系统

摘要

本文首先分析了手机钱包的三大模块,然后阐述了系统的设计原则,第一阶段对业务流程和数据的调查,需求应符合实际工作业务需求,构建系统的功能模块,并给出子模块功能的简述;第二阶段正确绘制本系统的流程图。将数据库转换为分E-R图,最后合并成整体的E-R图功能实现过程,对在整体设计中的功能给出SQL语句的相应描述,要求优化查询,说明了需完善之处。最后,通过数据库建表模拟,完成手机钱包管理系统的实现。本文手机钱包以支付宝为例。

支付宝(中国)网络技术有限公司是国内领先的第三方支付平台,致力于提供“简单、安全、快速”的支付解决方案。支付宝公司从2004年建立开始,始终以“信任”作为产品和服务的核心。旗下有“支付宝”与“支付宝钱包”两个独立品牌。自2014年第二季度开始成为当前全球最大的移动支付厂商。

支付宝主要提供支付及理财服务。包括网购担保交易、网络支付、转账、信用卡还款、手机充值、水电煤缴费、个人理财等多个领域。在进入移动支付领域后,为零售百货、电影院线、连锁商超和出租车等多个行业提供服务。还推出了余额宝等理财服务。支付宝与国内外180多家银行以及VISA、MasterCard国际组织等机构建立战略合作关系,成为金融机构在电子支付领域最为信任的合作伙伴。

关键字:手机钱包管理系统支付宝数据库SQL语言

目录

一、引言 1

二、需求分析 1

2.1 背景 1

2.1.1 背景 1

2.1.2需求现状 1

2.2用户需求分析 2

2.2.1 支付宝用户需求分析 2

2.2.2 客户需求分析 2

2.2.3 银行卡用户需求分析 2

2.3功能需求描述 2

2.3.1 钱包管理模块 2

2.3.2 财富信息管理模块 2

2.3.3 后台管理模块 2

2.3.4 功能模块图 2 2.4 数据流图 3

2.4.1 财富信息数据流图 3

2.4.2 钱包管理数据流程图 4

2.4.3 消费管理数据图 4

2.4.4 总数据流图 4

三、概念结构设计 5

3.1目标与任务 5

3.2实体属性 5

3.3 E-R实体模拟图 6

3.3.1 各实体E-R图 6

3.3.3系统总的E-R图 8

四.逻辑结构设计 10

4.1 任务与目的 10

4.2 关系模式的转换 10

4.3 数据模式的优化 10

4.4 优化后的关系模式 11

4.5设计用户子模式 11

五、设计SQL查询功能 11

5.1 SQL语言的概述 11

5.2建立数据库 12

5.2.1创建数据库 12

5.2.2 基本表的定义,删除与修改 12

5.3 数据查询 16

5.3.1单表查询 16

5.3.2嵌套查询 17

5.3.3集合查询

5.4 数据更新

5.4.1插入数据

5.4.2修改数据

5.4.3删除数据

5.5 触发器的建立

5.5.1 触发器概念

5.5.2 定义触发器

六、总结

七、参考文献

一、引言

手机钱包致力于为中国电子商务提供简单、安全、快速的在线支付解决方案。支付宝账户是为了实现支付宝服务而推出的交易工具。

支付宝为用户提供在银行账户和支付宝账户之间的资金划转业务,并提供相应资金往来记录的查询和管理。为你解决后顾之忧!钱没有直接交付到卖家手里。如果货物出问题,钱很容易就回来!不会出现交钱后就万事难的问题!支付宝其实就相当于担保中介,在买家和卖家之间建立起资金互通的桥梁,如果买家直接把钱打到卖家的银行帐户,买家不放心,如果卖家直接把货了,还怕收不到款,所以支付宝就在这种情况下出生的,买家买东西的时候先把钱打到中介支付宝公司等买家收到货后,再由支付宝打转入卖家帐户,这样以来,双方放心了!

手机钱包管理系统可以为买卖双方完成安全、快速的网上支付业务,并为买卖家双方提供了交易资金记录的查询和管理。所以建立应当建立一套手机钱包于支付关系的管理系统。

二、需求分析

2.1 背景

2.1.1 背景

随着社会的发展,人们的物质生活和精神生活不断地提高,然而我们的社会也走进了一个全新的时代。各行各业都开始离不开信息化。不管是在学校,企业还是事业单位都在通过一些信息化的管理来实现对人和事物的管理,不仅方便、快捷、更节省了劳动力。然而钱包也不例外,手机钱包致力于为中国电子商务提供简单、安全、快速的在线支付解决方案。如需现金的在线支付成为了手机钱包的绝对化优势,现在我们以支付宝为例,建立支付宝管理系统,实现支付环境的最优化。

2.1.2需求现状:

目前,虽然已经有了支付宝钱包管理系统,但是这种手机钱包管理系统有太多的局限性,已经不能满足用户和商家的需求,主要存在以下问题:

1.进入支付宝立即不清楚账号信息。

2.模块内容杂乱。

3.设置功能不易发现,更换支付宝账号较繁琐。

4.太大众化,与各种网银钱包一样,没有自己的特点,没有特殊群体特殊对待。

6.多数功能客户应用不到。

2.2用户需求分析

用户是系统的最终使用者,由分析可以得出结论,该系统应包含支付宝用户,客户,银行卡三大用户。这三类用户对该系统分别有不同的需求。

2.2.1 支付宝用户需求分析

支付宝账户简称账户,账户户对系统的主要要求是:

可以进行转账,充值,缴费,购物等一系列财物支付活动的实体。

2.2.2 客户需求分析

账户户进行转账,充值,缴费等支付活动的接受方。还是提供美食,电影,外卖,淘宝等交易的用户

2.2.3 银行卡用户需求分析

支付宝通过银行卡进行支付活动

2.3功能需求描述

由分析可以得出结论,该系统应包含钱包管理模块,商家管理模块,财富管理模块。这三类模块对该系统分别有不同的需求。

2.3.1 钱包管理模块

本模块主要实现转账,手机充值,信用卡还款,生活缴费,收款,校园一卡通,美食,电影,外卖,淘宝等一系列消费管理活动。要涉及三类用户:支付宝账户户,客户,银行卡。用户通过该系统实现与客户,银行卡之间的各项支付活动。

2.3.2 财富信息管理模块

每一个支付宝账户都可对银行卡输入、查询、更新、插入、修改、删除。2.3.3 后台管理模块

本模块是整个系统的一个基础,因为涉及到每个账户每个信息的不同。系统需要动态的管理支付宝账户的输入、查询、更新、插入、修改、删除。

2.3.4 功能模块图

2.4 数据流图

2.4.1 财富信息数据流图

绑定银行卡

2.4.2 钱包管理数据流程图手机钱包管理系统

钱包管理模块财

转账充

退

账户银行卡管理银行卡余额管理余额宝

转账更新

购物更新 充值更新

账单更新

2.4.3 消费管理数据图

2.4.4 总数据流

转账管理

转 账

购物管理

购 物

手机充值

管 理

手机充值

账单管理

账单

账户 消费

账单

支付

银行卡

转账、购物 客户

转账更新

购物更新

充值更新 账单更新

三、概念结构设计 3.1目标与任务

模型是对现实世界的模拟和抽象,概念模型是对现实世界的第一层抽象。是用户与数据库设计人员之间进行交流的语言。概念结构设计是将需求分析后得到的用户需求抽象为反映用户观点的概念模型。

3.2实体属性

1) 账户(账号、登录密码、头像、姓名、性别、地区、绑定手机号、收货地址) 2) 客户( 客户账号、姓名、头像、性别、地区)

3) 银行卡(银行卡号、开户姓名、开户证件号、开户银行、开户网点、密码、 余额)

4) 余额宝(账号、余额、收益、支付密码)

5) 转账(客户账号、金额、日期、客户姓名、备注、付款方式) 6) 购物(购物商家、购物类型、日期、金额、付款方式) 7) 充值(手机号、金额、付款方式,日期)

转账管理

转账

购物管理

购 物

手机充值管 理 充值

账单管理 账单

余额宝 余额 银行卡

绑定

支付

客户

对象

8) 账单(账单号、客户账号、日期、金额、交易类型)

3.3 E-R 实体模拟图

3.3.1 各实体E-R 图 1) 账户实体

2) 客户实体

3) 银行卡实体

账户

账号

登陆密码

收货地址 性别 绑定手机号 地区

头像

姓名

客 户

账号

姓名

头像

性别

地区

银行卡

卡号

姓名

证件号

密码

4) 余额宝实体

5) 转账实体

6) 购物实体

余额宝

账号 余额 收益 支付密码 转 账 客户账号 姓名 金额 时间 购 物

商家

付款方式

时间

类型

金额

备注 付款方式

7) 充值实体

8) 账单实体

3.3.3系统总的E-R 图

充 值

手机号 金额

付款方式

账单

账单号

客户账号

时间

交易类型 金额

日期

1

n n 1

1

m n m n n m

1 1

1 n

1 1

n

充值

手机

付款方式

充值金额

绑定

账户 账号 登陆密码 收货地址

性别 绑定手机

地区 头像 姓名 对象

客 户

账号

姓名

头像

性别

地区

支付 转账

客户账号

付款方式

备注

金额

购买 购物

金额 类型

日期

付款方式

属于

绑定 余额宝 账号 余额 收益 支付密码 银行卡 卡号 姓名 证件号

密码 余额

银行 开户网点 支付

账单

交易类型

账单号 对方账号

时间

金额

对象 对象

日期

四.逻辑结构设计

4.1 任务与目的

逻辑结构设计的任务是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。

4.2 关系模式的转换

4.2.1 E-R图向关系模型的转换,实现将实体型和实体间的联系转换为关系模式。

一个账户可以绑定多张银行卡,一张银行卡只能被一个账户绑定,故账户和银行卡之间是一对多的联系。

一个账户只有一个余额宝,一个余额宝只属于一个账户,故账户和余额宝之间是一对一的联系。

一个账户可以在多个商家购买东西,一个商家可以卖给多个账户东西,故账户和购物之间是多对多的联系。

一个账户可以进行多次转账,转账可以被多个账户进行,故账户和转账多对多的联系。

一个账户可以进行多次手机充值,手机可以被多个账号充值,故账户和手机充值之间是一对一的关系。

一个客户是一个购物商家,一个购物商家只能是一个客户,故客户和购物是一对一的联系。

一个客户可以接受多次转账,一次转账只能传递给一个客户,故客户和转账是一对多的联系。

一个客户可以接受多次充值,一次充值只能传递给一个客户,故客户和充值是一对多的联系。

一个账单只能被一个余额宝或者一个银行卡支付,一个余额宝或者一个银行卡支付多个账单,故账单和余额宝、银行卡是一对多的联系。

4.2.2 按照最少关系模式把E-R图转换为关系模型如下:

1)账户(账号、姓名、性别、地区、绑定手机号、收货地址、登录密码)

2)客户(客户账号、姓名、性别、地区)

3)银行卡(银行卡号、绑定账户账号、开户姓名、开户银行、密码、余额)

4)余额宝(账号、余额、支付密码)

5)转账(客户账号、账户账号、金额、日期、客户姓名、备注、付款方式)

6)购物(购物商家、账户账号、客户账号、购物类型、日期、金额、付款方式)

7)充值(账户账号、手机号、金额、付款方式,日期)

8)账单(账单号、对方账号、账户账号、银行卡号、日期、金额、交易类型)

4.3 数据模式的优化

账户关系:账户可以由账号唯一标识,并且满足BCNF的条件,故为BCNF。

客户关系:客户可以由支付宝账号唯一标识,并且满足BCNF的条件,故为BC NF。

银行卡关系:主码银行卡号与外码绑定的账户账号存在部分依赖,故为1NF

余额宝关系:BCNF。

转账关系:不存在部分依赖关系,也不存在专递依赖关系,故为3NF。

购物关系:3NF。

充值关系:3NF。

账单关系:主码账单号与银行卡号存在部分依赖关系,故为1NF

4.4 优化后的关系模式

1)账户(账号、姓名、性别、地区、绑定手机号、收货地址、登录密码)

2)客户(客户账号、姓名、性别、地区)

3)银行卡(银行卡号、开户姓名、开户银行、密码、余额)

4)余额宝(账号、余额、支付密码)

5)转账(客户账号、账户账号、金额、日期、客户姓名、备注、付款方式)

6)购物(购物商家、账户账号、客户账号、购物类型、日期、金额、付款方式)

7)充值(账户账号、手机号、金额、付款方式,日期)

8)账单(账单号、对方账号、账户账号、日期、金额、交易类型)

4.5设计用户子模式

将概念模型转换为全局逻辑模型后,还应该根据局部应用需求,结合具体DBMS的特点,设计用户的外模式。

目前关系数据库管理系统一般都提供了视图(Views)概念,可以利用这一功能设计更符合局部用户需求的用户外模式。

定义数据库全局模式主要是从系统的时间效率、空间效率、易维护等角度出发。由于用户外模式与模式是相对独立的,因此在定义用户外模式时可以注重考虑用户的习惯与方便。

包括:

(1)使用更符合用户习惯的别名。

(2)可以对不同级别的用户定义不同的Views,以保证系统的安全性。

(3)简化用户对系统的使用。

五、设计SQL查询功能

5.1 SQL语言的概述

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工

作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

SQL语言是一个十分重要的标准数据库语言。SQL语言包括查询、数据操纵、定义、控制和管理等功能。SQL语言是一个综合的、通用的、功能极强的关系数据库语言。SQL功能强,简单易学,是一种交互式的查询语言,允许用户直接使用查询语句查询存储的数据

SQL有以下5个特点

1)综合统一

2)高度非过程化

3)面向集合的操作方式

4)以同一语法结构提供多种使用方式

5)语言简洁,易学易用

5.2建立数据库

5.2.1创建数据库

create database 手机钱包管理系统

5.2.2 基本表的定义,删除与修改

1)账户

定义

create table账户

(账号char(20)not null primary key,

姓名char(10),

性别char(2),

绑定手机号char(11),

地区char(10),

收货地址char(20),

登陆密码char(20),

);

表1 账户

属性名字段类型主码或外码字段值约束

账号char Primary key 20

姓名char 10

性别char 2 绑定手机号char 11 地区char 10

收货地址char 20

登陆密码char 20

修改

向账户表增加“注册时间”列,其数据类型为日期型。

Alter table账户add注册时间datetime;

删除

删除账户表。

Drop table账户cascade;

2)客户

定义

create table客户

(客户账号char(20)not null primary key,

姓名char(10),

性别char(2),

地区char(10),

);

表2 客户

属性名字段类型主码或外码字段值约束

账号char Primary key 20

姓名char 10

性别char 2

地区char 10

修改

向客户表增加“年龄”列,其数据类型为短整数型。

Alter table客户add年龄smallint;

删除

删除客户表。

Drop table客户cascade;

3)银行卡

定义

create table银行卡

(银行卡号char(20)not null primary key,

姓名char(10),

开户银行char(10),

密码char(20),

余额char(20),

);

表3 银行卡

属性名字段类型主码或外码字段值约束银行卡号char Primary key 20

姓名char 10

开户银行char 10

密码char 20

余额char 20

修改

向银行卡表增加“绑定手机号”列,其数据类型为字符型。

Alter table银行卡add绑定手机号char(11);

删除

删除银行卡表。

Drop table银行卡cascade;

4)余额宝

定义

create table余额宝

(账号char(20),

支付密码char(20),

余额char(20),

primary key(账号),

foreign key(账号)references账户(账号),

);

表4 余额宝

属性名字段类型主码或外码字段值约束

账号char primary key 20

支付密码char 20

余额char 20

5)转账

定义

create table转账

(账户账号char(20),

客户账号char(20),

金额char(20),

日期datetime,

客户姓名char(10)

备注char(20)

付款方式char(10)

primary key(账户账号,客户账号),

foreign key(账户账号)references账户(账号),

foreign key(客户账号)references客户(账号),

);

表5 转账

属性名字段类型主码或外码字段值约束账户账号char primary key 20

客户账号char primary key 20

金额char 20

日期Date

客户姓名char 10

备注char 20

付款方式char 10

6)购物

定义

create table购物

(账户账号char(20),

客户账号char(20),

金额char(20),

日期 date,

购物商家char(10)

购物类型char(20)

付款方式char(10)

primary key(账户账号,客户账号),

foreign key(账户账号)references账户(账号),

foreign key(客户账号)references客户(账号),

);

表6 购物

属性名字段类型主码或外码字段值约束账户账号char primary key 20

客户账号char primary key 20

金额char 20

日期Date

购物商家char 10

购物类型char 20

付款方式char 10 7)充值

定义

create table充值

(手机号char(11),

账户户账号char(20),

金额char(20),

日期 date,

付款方式char(10)

primary key(账户账号,手机号),

foreign key(账户账号)references账户(账号),

);

表7 充值

属性名字段类型主码或外码字段值约束账户账号char primary key 20

手机号char primary key 11

金额char 20

日期Date

付款方式char 10 8)账单

定义

create table账单

(账单号char(20),

账户账号char(20),

对方账号char(20),

金额char(20),

日期 date,

交易类型char(10)

primary key(账单号),

);

表8 账单

属性名字段类型主码或外码字段值约束账单号char primary key 20

账户账号char 20

对方账号char 20

金额char 20

日期Date

交易类型char 20

5.3 数据查询

5.3.1单表查询

查询转账的详细记录

Select*

From转账;

查询消费金额20元以上的交易记录

Select*

From账单

Where金额>20;

查询账户101的账单记录,并按时间的降序排列

Select*

From账单

Where账户账号=101

相关文档
相关文档 最新文档