实用文档
2.2表结构
通过对银行管理系统的需求分析,应该为该系统设计3个表,分别为用户信
息表、银行卡信息表和交易信息表。
用户信息表用于存储用户的基本信息,包括用户的编号、开户名、身份证号、联系电话和家庭住址等信息
表2.1 用户信息表 字段名称 customer customer PID telephone Address 字段描述 用户编号 开户名 身份证号 联系电话 家庭地址 数据类型 Number Varhcar2 Varchar2 Varchar2 Varchar2 长度 4 20 18 13 50 约束 主键 必填 必填 必填 无
银行卡信息表用于存储银行卡相关的信息主要包括卡号、存储的货币类型,存款方式,开户时间,开户金额,余额、银行卡密码、是否挂失和用户编号等信息,
表2.2银行卡信息表 字段名称 cardID curType SavingType Opendate openmoney Balance Isreportloss Customer 字段描述 卡号 货币种类 存款类型 开户日期 开户金额 帐户余额 是否挂失 开户编号 数据类型 Varchar2 Varhcar2 Varchar2 DATETIME Number Number Varchar2 Varchar 长度 20 10 8 8 8 2 4 约束 主键 必填 非空 必填 必填 必填 必填 外键 交易信息表用于存储用户的交易记录,主要包括交易日期,卡号、交易类型,交易金额等信息。
表2.3交易信息表
字段名称 Transdate cardID transTYPE transMoney remark 字段描述 交易日期 卡号 交易类型 交易金额 备注 数据类型 Datetime Varhcar2 VARCHAR2 NUMBER VARCHAR2 长度 20 4 4 50 属性 PK 非空 非空 非空 非空 文案大全
实用文档
三、创建系统数据表
3.1创建表空间和用户
使用system用户连接数据库后,创建表空间space_zqp,指定数据文件为
D:\\Bank.dbf,代码如下图:
图3.1表空间和用户
3.2创建用户信息表并添加约束
用户信息表保存了用户的基本信息,该表的创建语句如下, CREATE TABLE userInfo (
customerID NUMBER(4) NOT NULL, customerName VARCHAR2(20) NOT NULL, PID VARCHAR2(18) NOT NULL, telephone VARCHAR2(13) NOT NULL, address VARCHAR2(50)
文案大全
实用文档
)
PARTITION BY HASH(PID) (
PARTITION pid1, PARTITION pid2, PARTITION pid3, );
ALTER TABLE userInfo
ADD CONSTRAINT PK_customerID PRIMARY KEY(customerID) ADD CONSTRAINT UK_PID UNIQUE(PID)
ADD CONSTRAINT CK_PID CHECK(LENGTH(PID)=18 OR LENGTH(PID)=15) ADD CONSTRAINT CK_telephone CHECK(
telephone LIKE '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'OR LENGTH(telephone)=13);
------------------创建可以自动生成自增主列的序列 customerid_seq CREATE SEQUENCE customerid_seq START WITH 1 INCREMENT BY 1 NOCACHE
如上述语句所示,在userInfo表中包含用户编号(customerid)、开户名(customername)、身份证号(PID)、联系电话(telephone)、家庭住址(address)。其中,customerid为主键,自增(从1开始);PID只能是18位或15位,并且是唯一的;telephone必须是xxxx-xxxxxxxx的格式或13位的手机号码。
文案大全
实用文档
图3.2用户信息表
3.3创建银行卡信息表
银行卡信息表(cardinfo)中包含了卡号(cardid),货币种类(curType),存款类型(savingtype),开户日期(opendate),开户金额(openmoney),余额(balance),密码(pass),是否挂失(isREPORTLOSS)和用户编号(customerID)的信息。其中,cardID为主键,必须为1010 3756 xxxx xxxx的格式;CURTYPE默认为RMB,openmoney必须不能低于一元;balance也必须不能低于一元;pass默认为88888888;ISREPORTLOSS的值必须是“是/否”中之一,默认为否;customerID为外键,引用userInfo表中的customerID列。
文案大全
实用文档
图3.3
3.4创建交易信息表
交易信息表中包含了五个字段,分别为transdate(交易日期),cardID(卡号)、TRANSTYPE(交易类型),transmoney(交易金额)和remark(备注)。其中,transdate默认为系统当前日期;cardid位外键,引用cardinfo表中的cardid列,可重复;transtype只能是“存入/取出”之一;transmoney必须大于0.
文案大全