ATM取款系统数据库设计
需积分: 0 182 浏览量
更新于2024-08-15
收藏 1.41MB PPT 举报
"ATM取款系统的数据库设计"
在设计ATM取款系统数据库时,首先需要理解系统的核心功能和所需存储的数据。本系统主要包括开户、取款、存款、查询余额和转账等操作,因此数据库设计应围绕这些功能展开。
问题分析:
1. 用户信息表(userInfo):
- customerID:顾客编号,自动编号,为主键,确保每个用户有唯一的标识。
- customerName:开户名,必填,用于记录客户姓名。
- PID:身份证号,必填且唯一,可以是18位或15位。
- telephone:联系电话,必填,格式限定为固定电话或手机号码。
- address:居住地址,可选输入,用于记录客户的居住地。
2. 银行卡信息表(cardInfo):
- cardID:卡号,必填且为主键,遵循特定的银行格式,例如10103576xxxxxxx,并且每4位有空格。
- curType:货币种类,必填,默认为RMB(人民币)。
- savingType:存款类型,包括活期、定活两便、定期。
- openDate:开户日期,必填,默认为系统当前日期。
- openMoney:开户金额,必填,不能低于1元。
- balance:余额,必填,不能低于1元,否则系统会自动销户。
- pass:密码,必填,由6位数字组成,开户默认为6个"8"。
- IsReportLoss:是否挂失,必填,值为"是"或"否",默认为"否"。
- customerID:顾客编号,外键,表示该卡对应的顾客编号,一个顾客可以办理多张卡。
3. 交易信息表(transInfo):
- transDate:交易日期,必填,默认为系统当前日期。
- cardID:卡号,必填,外键,与cardInfo表关联,记录每次交易的卡号。
- transType:交易类型,必填,包括存款(存入)和取款(支取)。
- transMoney:交易金额,必填,必须大于0,表示交易的金额。
- remark:备注,可选输入,用于记录额外的交易信息。
难点分析:
在设计ER图(实体关系图)时,需考虑各个实体(如用户、卡片、交易)之间的关系。用户与卡片之间是一对多关系,一个用户可以有多张卡片;卡片与交易之间是一对多关系,一张卡片可以有多笔交易。在建库和建表过程中,需设定好主键、外键和约束,确保数据的一致性和完整性。例如,创建数据库的SQL语句如下:
```sql
CREATE DATABASE bankDB
ON
(
NAME='bankDB_data',
FILENAME='D:\bank\bankDB_data.mdf',
SIZE=1MB,
FILEGROWTH=15%
)
LOG ON
(
NAME='bankDB_log',
FILENAME='D:\bank\bankDB_log.ldf',
SIZE=1MB,
FILEGROWTH=15%
);
```
以上语句创建了一个名为bankDB的数据库,数据文件初始大小为1MB,以15%的速度增长。日志文件同样设置在D:\bank目录下,同样1MB起始,按15%增长。在创建表时,需要定义各个字段的类型、长度、是否可为空以及约束条件,例如唯一性约束、非空约束等。
数据库设计完成后,可以进一步进行数据插入、查询、更新和删除操作,以支持ATM取款系统的正常运行。同时,为了保证系统的安全性,还需要考虑如加密存储敏感信息(如密码)、防止SQL注入攻击等安全措施。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2012-10-24 上传
2023-07-17 上传
2008-09-15 上传
2022-07-08 上传
点击了解资源详情
小炸毛周黑鸭
- 粉丝: 25
- 资源: 2万+
最新资源
- BeatTheBotChallenge:来挑战这个玩摩托赛车电话游戏的机器人,看看它是如何制造的,并帮助改进它!
- GetHtmlTool:Qt初步获取网页原始码
- StudentClass,java怎么看源码,javap2p网贷源码下载
- 宠物播种机
- zeromq-4.2.0.tar.zip
- nginx-http-concat:WordPress插件可将单个脚本文件CSS和Javascript连接成一个资源请求
- 高级JSON表单规范第2章:输入小部件
- angularjs-studies
- city-generator:C ++ City Generator
- SocketProject:SocketProject
- crawl_html:python网络爬虫-爬网页原始码
- 手写 Volley 网络访问框架
- living-with-django:关于容忍最臃肿的python web框架的博客
- RestaurantsAppWithCollectionViews
- SkeSubDomain:利用递归归,通过匹配网页源码里的子域内容收集所有的子域信息,可收集四级五级等多级子域名
- portfolio:我的投资组合网站,其中包含我的所有工作