项目案列:银行ATM存款机系统(笔记经典案列)

第一步数据库设计:
1、明确了解银行业务需求,围绕银行的需求进行分析,确认银行ATM存款机有紧密关系的实体,并得到每个实体的必要属性

2、绘制E-R图
描述:
使用数据库设计工具,把设计数据库第一步的结果(即分析得到的银行ATM存款机系统的实体,实体属性及实体之间的关系)用E-R图表示:
在这里插入图片描述
3、绘制数据库模型
描述:
使用数据库设计工具,把E-R图中的实体转换成数据库中的表对象,并为表中的每一列指定数据类型和长度。
要求:
数据库模型图中要标识表的主主键和外键。
在这里插入图片描述
第二步创建数据库及登录用户并授权:
1、创建数据库
描述
使用create database语句创建ATM存款机系统数据库Bank
要求:
创建数据库时要求检查是否存在bank,如果存在,则应该先删除再创建
drop database if exists bank;
create database bank;
2、创建登录用户并授权
创建普通用户BankMaster,可以在任意主机登录mysql服务器,具有数据库bank的所有权限,密码为1234;
crant all on bank.*to ‘bankMaster’ identified by ''1234;
第三步:创建表、约束
1、创建表
描述:
根据E-R图和模型图设计出ATM取款机系统的数据库表结构,使用create table语句创建表结构

要求:
创建表时要检测是否存在表结构,如果存在,则应删除再创建。

2、创建外键约束
描述:
根据银行业务,为相应表添加外键约束,使用alter table 。。。。。add 。。。语句

为表添加外键约束时,要先添加主表的主键约束,再添加子表的外键约束。


 
USE bank;

DROP TABLE IF EXISTS `userInfo`;
CREATE TABLE `userInfo`  #用户信息表
(
  `customerID` INT(4) PRIMARY KEY AUTO_INCREMENT COMMENT '用户编号',
  `customerName` CHAR(8) NOT NULL COMMENT '用户编号',
  `PID` CHAR(18) UNIQUE NOT NULL COMMENT '身份证号',
  `telephone` CHAR(20) NOT NULL COMMENT '手机号码',
  `address` VARCHAR(50) COMMENT '居住地址'
)ENGINE = INNODB,COMMENT='用户表';

DROP TABLE IF EXISTS `cardInfo`;
CREATE TABLE `cardInfo`  #银行卡信息表
(
  `cardID`  CHAR(19) NOT NULL PRIMARY KEY COMMENT '卡号',
   `password` CHAR(6) NOT NULL DEFAULT "888888" COMMENT '密码',
  `curID`  VARCHAR(10) NOT NULL DEFAULT "RMB" COMMENT '币种',
  `savingID` INT NOT NULL COMMENT '存款类型',
  `openDate`  TIMESTAMP NOT NULL COMMENT '开户日期' ,
  `openMoney`  DECIMAL(20,2) NOT NULL DEFAULT 1 COMMENT '开户金额' ,
  `balance`  DECIMAL(20,2) NOT NULL DEFAULT 1 COMMENT '余额',
  `IsReportLoss` BIT  NOT NULL  DEFAULT 0 COMMENT '是否挂失',
  `customerID` INT NOT NULL
) ENGINE = INNODB,COMMENT='银行卡信息表';

DROP TABLE IF EXISTS `tradeInfo`;
CREATE TABLE `tradeInfo`  #交易信息表
(
  cardID  CHAR(16) NOT NULL COMMENT '卡号',
  tradeDate  TIMESTAMP NOT NULL  COMMENT '交易日期',
  tradeMoney  DECIMAL(20,2) NOT NULL COMMENT '实际交易金额',
  tradeType  CHAR
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
一 摘要 现在生活快节奏的生活,银行卡成为现代人的必备物品。 ATM机是时代的成功产物。ATM取款机是为了方便人们管理和存储自己的钱财,一般的 ATM机可以取款,转账,查询余额修改密码。根据这些功能可用SQL sever模拟出的登陆,查询余额的功能。首先要做出整个系统的E- R图,然后进行数据库系统逻辑设计,做出系统流图,概述ATM各个操作间的数据流流 向以及各个实体之间所具有的一些操作。接着进行数据库系统的物理设计。整个系统 需要的软件有SQL server 2000,以及Visual Studio 2005 。 二 数据库的建立 1. 数据库命名规则 1. 数据库命名:英文或英文缩写。如:ATM。 2. 数据库表命名:汉译英,或者英文缩写,如:cardInfo。 3. 字段命名:全部采用英文简写,如卡号—cardID。 2.总的E-R图(用Visio 2003软件可以画出) 1. 数据库系统逻辑设计 这样的系统流图清晰描绘了ATM各个操作间的数据流流向各个实体之间的操作 2. 数据库系统物理设计 通过E-R图的建立可以看到ATM系统共有3个表格 1. 银行卡基本信息表 "字段名 "英文名 "主键"数据类型"数据长 "NULL"备注 " " " " " "度 " " " "卡号 "cardID " "varchar "20 "NOT "银行卡的账号 " "卡类型 "curtype " "Varchar "10 "NOT "银行卡的类型 " "存储类型"Savingtype" "Varchar "8 "NOT "存款类型 " "开户日期"Openday " "Datetime" "NOT "开户日期 " "金额 "Openmoney " "Money " "NOT "卡上银行 " "密码 "Password " "varchar "6 "NOT "卡的密码 " "卡的序号"customerID" "Int " "NOT "开户时卡的序号" 2)转入金额表 "字段名"英文名 "主键 "数据类型 "数据长"NULL"备注 " " " " " "度 " " " "源卡号"SourcecardID " "varchar "20 "NOT "原帐户卡号 " "卡号 "TargetcardID " "varchar "20 " "要转入的账户卡号" "金额 "TransAmount " "Money " " "转账的数量 " "日期 "Transdate " "Datetime " "NOT "转账日期 " 3)转出金额表 "字段名 "英文名 "主键 "数据类型"数据长度 "NULL "备注 " "源账号 "SourcecardID " "char "20 "NOT "原账号 " "账号 "TragetcardID " "char "20 "NOT "目标账号 " "金额 "Transamount " "Money " "NOT "转账金额 " "日期 "TransTime " " " "NOT "转账日期 " 5) 数据库系统代码设计 a) 登陆表代码 确定键代码(事件Button12_click) Dim sqlstr As String Dim dataset As New DataSet() sqlstr = "select * from cardInfo where cardID='" + TextBox1.Text + "'" '获取cardInfo表中cardID和textbox1相同的数据 dataset = GetDataFromDB(sqlstr) '获取sqlstr中指定表中的数据 Dim count As Integer count = dataset.Tables(0).Rows.Count ' 统计dataset中表的行数 If count = 0 Then MsgBox("表中没有此卡号") Else If TextBox2.Text = dataset.Tables(0).Rows(0)("pass") Then Dim MDIChild As New Form3() Form3.Show() Me.Finalize() Else MsgBox("密码错误!") End If End If 退位键代码(事件Button14_click) Dim strlen As String If TextBox1.TextLength < 19 Then strlen = TextBox1.Text.Remove(TextBox1.Text.Length - 1, 1) '在原textbox字符串中长度减一 TextBox1.Text = strlen '重新显示 Exit Sub Else strlen = Text

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天元白手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值