银行数据库表的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
银行数据库表的设计
系统需求分析:
1.在学习了数据库之后,为了更进一步巩固所学知识,将其用于实践,我们选择了银行管理系统,来完成最基本的一些操作。
2.功能
(1).客户:包括存款,取款,转账,查询余额,查看流水,密码修改这些功能
(2).管理员:
1.新增用户
2 .删除
3.查看
4.员工绩效(就是根据流水表中的员工号,select出员工一天内做的所有单,用来考评绩效)
5.VIP判别(就是账户存储资金大于某个值的时候在账户表的一个字段上赋值为VIP)
6.资金储备金判别,当库存资金总数小于一个值的时候,系统对管理者要提出风险警告。
3.功能流程图:
银行管理系统
登陆
管理员
客户
销户
查看
员工绩效
VIP
判别
资金储备金判别
开户
存款取款转账
余额显示查看流水修改密码
详细设计: 1.E-R 图模型
operate
custom
bank
staff
Cphone
Ctime
Cpass
CRmoney
Cname
Cid
Bid
Sphone
Sname
Sid
Spass
SItime
Bname Bmoney
Bid
1
1
1
2.根据E-R图设计关系表
字段名字段类型及长度允许空主键说明
Bid nchar(9) no PK 银行号
Bname nchar(20) no 银行名
Bmoney numeric(20,3) no 银行余额
字段名字段类型及长度允许空主键说明
Cid nchar(9) no PK 客户ID
Cname nchar(10) no 客户姓名
Cpass nchar(10) no 密码
Ctime nchar(20) no 注册时间
Bid nchar(9) no 所在银行行号
外码(Bank(Bid))
Crmoney numeric(10,3) no 账户余额
Cphone nchar(11) no 客户电话
字段名字段类型及长度允许空主键说明
Sid nchar(9) no PK 员工ID
Sname nchar(10) no 员工姓名
Spass nchar(10) no 登陆密码
SItime nchar(20) no 入行时间
Sphone nchar(11) no 联系电话
字段名字段类型及长度允许空主键说明
Oid nchar(9) no PK 流水号
Cid nchar(9) no 客户ID 外码(Custom(Cid))Bid nchar(9) no 银行ID 外码(Bank(Bid))Sid nchar(9) no 员工ID 外码(Staff(Sid))Otype smallint no 操作类型
Otime nchar(20) no 操作时间
Omoney numeric(10,3) yes 交易金额
OBmoney numeric(10,3) yes 上次余额
OAmoney numeric(10,3) yes 账户余额
三个实体:bank,staff,custom
一个联系:operate
关系图:
程序代码:
客户部分:
a. void CClientDlg::OnButtonIn()
//存款函数
{
// TODO: Add your control notification handler code here
CInDlg InDlg;
if (InDlg.DoModal()==IDOK)
{double temp,temp1;
ADOConn ado;
CString sql = "select * from
Custom where Cname='"+Cname+"'";
_RecordsetPtr ResultSet =
ado.GetRecordSet((_bstr_t)sql);
CString str = (LPCTSTR)(_bstr_t)ResultSet->GetColle
ct("Crmoney");
CString bid = (LPCTSTR)(_bstr_t)ResultSet->GetColle
ct("Bid");
CString str4 = (LPCTSTR)(_bstr_t)ResultSet->GetColle
ct("Cid");
CString str2= str;
//将交易前钱数暂存
temp=atof(str);
temp1=(double)InDlg.m_InNum;
temp+=temp1;
str.Format("%f",temp);
CString str3 = str;
//暂存交易后金额
sql = "update Custom set
Crmoney='"+str+"' "+"where Cname='"+Cname+"'";
ado.ExecuteSQL((_bstr_t)sql);
sql = "select count(*) num from Operate";
ResultSet = ado.GetRecordSet((_bstr_t)sql);
int num = atoi((LPCTSTR)(_bstr_t)ResultSet->Get Collect("num"));
str = "240600";CString Oid,Cid,Sid,Bid,Otime,Omoney,OAmoney, OBmoney;
Oid.Format("%d",++num);
Oid=str+Oid;
Sid="7985001";Bid = bid; double temp2;
sql = "select * from Bank where Bid='"+Bid+"'";
ResultSet = ado.GetRecordSet((_bstr_t)sql);
CString bmoney =