第一步数据库设计:
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