手机钱包的 数据库设计.docx
《手机钱包的 数据库设计.docx》由会员分享,可在线阅读,更多相关《手机钱包的 数据库设计.docx(27页珍藏版)》请在冰豆网上搜索。
手机钱包的数据库设计
题目:
手机钱包管理系统
摘要
本文首先分析了手机钱包的三大模块,然后阐述了系统的设计原则,第一阶段对业务流程和数据的调查,需求应符合实际工作业务需求,构建系统的功能模块,并给出子模块功能的简述;第二阶段正确绘制本系统的流程图。
将数据库转换为分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.3E-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.1SQL语言的概述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定义触发器
六、总结
七、参考文献
1、引言
手机钱包致力于为中国电子商务提供简单、安全、快速的在线支付解决方案。
支付宝账户是为了实现支付宝服务而推出的交易工具。
支付宝为用户提供在银行账户和支付宝账户之间的资金划转业务,并提供相应资金往来记录的查询和管理。
为你解决后顾之忧!
钱没有直接交付到卖家手里。
如果货物出问题,钱很容易就回来!
不会出现交钱后就万事难的问题!
支付宝其实就相当于担保中介,在买家和卖家之间建立起资金互通的桥梁,如果买家直接把钱打到卖家的银行帐户,买家不放心,如果卖家直接把货了,还怕收不到款,所以支付宝就在这种情况下出生的,买家买东西的时候先把钱打到中介支付宝公司等买家收到货后,再由支付宝打转入卖家帐户,这样以来,双方放心了!
手机钱包管理系统可以为买卖双方完成安全、快速的网上支付业务,并为买卖家双方提供了交易资金记录的查询和管理。
所以建立应当建立一套手机钱包于支付关系的管理系统。
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、概念结构设计
3.1目标与任务
模型是对现实世界的模拟和抽象,概念模型是对现实世界的第一层抽象。
是用户与数据库设计人员之间进行交流的语言。
概念结构设计是将需求分析后得到的用户需求抽象为反映用户观点的概念模型。
3.2实体属性
1)账户(账号、登录密码、头像、姓名、性别、地区、绑定手机号、收货地址)
2)客户(客户账号、姓名、头像、性别、地区)
3)银行卡(银行卡号、开户姓名、开户证件号、开户银行、开户网点、密码、
余额)
4)余额宝(账号、余额、收益、支付密码)
5)转账(客户账号、金额、日期、客户姓名、备注、付款方式)
6)购物(购物商家、购物类型、日期、金额、付款方式)
7)充值(手机号、金额、付款方式,日期)
8)账单(账单号、客户账号、日期、金额、交易类型)
3.3E-R实体模拟图
3.3.1各实体E-R图
1)账户实体
登陆密码
账号
头像
收货地址
绑定手机号
账户
性别
姓名
地区
2)客户实体
姓名
地区
头像
账号
性别
客户
3)银行卡实体
余额
密码
证件号
开户网点
卡号
姓名
银行卡
银行
4)余额宝实体
收益
支付密码
余额
账号
余额宝
5)转账实体
金额
时间
姓名
客户账号
转账
付款方式
备注
6)购物实体
付款方式
金额
时间
商家
类型
购物
7)充值实体
金额
手机号
充值
日期
付款方式
8)账单实体
时间
账单号
账单
客户账号
交易类型
金额
3.3.3系统总的E-R图
性别
账号
日期
充值金额
头像
1
付款方式
对象
客户
手机号
充值
姓名
对象
地区
绑定
nn1
客户账号
登陆密码
1
金额
类型
账号
收货地址
头像
mn
购物
购买
转账
支付
账户
mnnm
姓名
性别
绑定手机号
日期
付款方式
付款方式
地区
金额
备注
绑定
属于
11
账号
姓名
开户网点
余额
证件号
1n
银行卡
余额宝
支付密码
密码
卡号
收益
余额
银行
支付
11
交易类型
n
对象
账单号
账单
对方账号
金额
时间
四.逻辑结构设计
4.1任务与目的
逻辑结构设计的任务是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。
4.2关系模式的转换
4.2.1E-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.1SQL语言的概述
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。
结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
SQL语言是一个十分重要的标准数据库语言。
SQL语言包括查询、数据操纵、定义、控制和管理等功能。
SQL语言是一个综合的、通用的、功能极强的关系数据库语言。
SQL功能强,简单易学,是一种交互式的查询语言,允许用户直接使用查询语句查询存储的数据
SQL有以下5个特点
1)综合统一
2)高度非过程化
3)面向集合的操作方式
4)以同一语法结构提供多种使用方式
5)语言简洁,易学易用
5.2建立数据库
5.2.1创建数据库
createdatabase手机钱包管理系统
5.2.2基本表的定义,删除与修改
1)账户
定义
createtable账户
(账号char(20)notnullprimarykey,
姓名char(10),
性别char
(2),
绑定手机号char(11),
地区char(10),
收货地址char(20),
登陆密码char(20),
);
表1账户
属性名
字段类型
主码或外码
字段值约束
账号
char
Primarykey
20
姓名
char
10
性别
char
2
绑定手机号
char
11
地区
char
10
收货地址
char
20
登陆密码
char
20
修改
向账户表增加“注册时间”列,其数据类型为日期型。
Altertable账户add注册时间datetime;
删除
删除账户表。
Droptable账户cascade;
2)客户
定义
createtable客户
(客户账号char(20)notnullprimarykey,
姓名char(10),
性别char
(2),
地区char(10),
);
表2客户
属性名
字段类型
主码或外码
字段值约束
账号
char
Primarykey
20
姓名
char
10
性别
char
2
地区
char
10
修改
向客户表增加“年龄”列,其数据类型为短整数型。
Altertable客户add年龄smallint;
删除
删除客户表。
Droptable客户cascade;
3)银行卡
定义
createtable银行卡
(银行卡号char(20)notnullprimarykey,
姓名char(10),
开户银行char(10),
密码char(20),
余额char(20),
);
表3银行卡
属性名
字段类型
主码或外码
字段值约束
银行卡号
char
Primarykey
20
姓名
char
10
开户银行
char
10
密码
char
20
余额
char
20
修改
向银行卡表增加“绑定手机号”列,其数据类型为字符型。
Altertable银行卡add绑定手机号char(11);
删除
删除银行卡表。
Droptable银行卡cascade;
4)余额宝
定义
createtable余额宝
(账号char(20),
支付密码char(20),
余额char(20),
primarykey(账号),
foreignkey(账号)references账户(账号),
);
表4余额宝
属性名
字段类型
主码或外码
字段值约束
账号
char
primarykey
20
支付密码
char
20
余额
char
20
5)转账
定义
createtable转账
(账户账号char(20),
客户账号char(20),
金额char(20),
日期datetime,
客户姓名char(10)
备注char(20)
付款方式char(10)
primarykey(账户账号,客户账号),
foreignkey(账户账号)references账户(账号),
foreignkey(客户账号)references客户(账号),
);
表5转账
属性名
字段类型
主码或外码
字段值约束
账户账号
char
primarykey
20
客户账号
char
primarykey
20
金额
char
20
日期
Date
客户姓名
char
10
备注
char
20
付款方式
char
10
6)购物
定义
createtable购物
(账户账号char(20),
客户账号char(20),
金额char(20),
日期date,
购物商家char(10)
购物类型char(20)
付款方式char(10)
primarykey(账户账号,客户账号),
foreignkey(账户账号)references账户(账号),
foreignkey(客户账号)references客户(账号),
);
表6购物
属性名
字段类型
主码或外码
字段值约束
账户账号
char
primarykey
20
客户账号
char
primarykey
20
金额
char
20
日期
Date
购物商家
char
10
购物类型
char
20
付款方式
char
10
7)充值
定义
createtable充值
(手机号char(11),
账户户账号char(20),
金额char(20),
日期date,
付款方式char(10)
primarykey(账户账号,手机号),
foreignkey(账户账号)references账户(账号),
);
表7充值
属性名
字段类型
主码或外码
字段值约束
账户账号
char
primarykey
20
手机号
char
primarykey
11
金额
char
20
日期
Date
付款方式
char
10
8)账单
定义
createtable账单
(账单号char(20),
账户账号char(20),
对方账号char(20),
金额char(20),
日期date,
交易类型char(10)
primarykey(账单号),
);
表8账单
属性名
字段类型
主码或外码
字段值约束
账单号
char
primarykey
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
Orderby日期desc;
5.3.2嵌套查询
查询交易金额为50元的客户姓名和账号
Select账号,姓名
From客户
Where对方账号in
(select对方账号
From账单
Where金额=50);
查询没有用银行卡购物的账户账号
Select账号
From账户
Wherenotexists
(select*
From购物
Where账户账号=账户,账号and付款方式=’银行卡’);
5.3.3集合查询
查询日期在2015年7月及消费金额大于等于50的账单号
Select账单号
From账单
Where日期>’2015-07-01’
Union
Select账单号
From账单
Where金额>=’20’;
5.4数据更新
5.4.1插入数据
将一个新客户元组(账号:
104;姓名:
陈晓;性别:
男;地区:
天津)插入到账户表中。
Insert
Into账户(账号,姓名,性别,