JAVA设计虚拟ATM机。其中数据库怎么设计(详细的数据库设计)。。。。知道的告诉我一下!谢谢拉

JAVA设计虚拟ATM机。其中数据库怎么设计(详细的数据库设计)。。。。知道的告诉我一下!谢谢拉,第1张

最后一列为备注

1、 管理员表(tb_admin)

字段 类型 约束 备注

aId number(6) 主键 --管理员编号

aName varchar2(10) 唯一、非空 --管理员登陆名

aPassword varchar2(16) 非空 --管理员登陆密码

aLastDate date 非空 --上次登陆时间

aNowDate date 非空 --本次登陆时间

2、 yhk登陆表(tb_login)

字段 类型 约束 备注

lId number(8) 主键 --登录ID

lCardNumber varchar2(19) 引用yhk信息表 卡号

lPassword number(6) 非空 yhk密码

bIsLock char(1) 默认1 是否被锁,0表示被锁,1表示开启

lTime number(10) 初始为0 登陆次数

aLastDate date 非空 上次登陆时间

aNowDate date 非空 本次登陆时间

3、 客户详细资料表(tb_userInfo)

字段 类型 约束 备注

usId number(8) 主键 客户ID

usName varchar2(10) 非空 客户姓名

usIDNumber varchar2(18) 非空 客户身份z号码

usSex char(1) 默认0 客户性别,0表示男,1表示女

usTel varchar2(11) 非空 客户电话

usAddress varchar2(50) 非空 客户地址

4、 银行支行表(tb_Branch)

字段 类型 约束 备注

bId number(3) 主键 支行ID

bName varchar2(20) 唯一、非空 支行名

bAddress varchar2(100) 非空 支行地址

5、 yhk信息表(tb_CardInfo)

字段 类型 约束 备注

bCardID number(19) 主键 卡号

bBalance number(8,2) 默认000 余额

bUserId number(8) 引用客户详细资料表 卡对应用户ID

bBranchID number(4) 引用支行表 支行ID

bDate date 默认系统时间 开户时间

6、 yhk交易类型表(tb_TransType)

字段 类型 约束 备注

tId number(2) 主键 类型ID

tType nvarchar2(6) 唯一 类型(转账、存款、取出等)

7、 yhk个人账户存、取款记录表(tb_ Pacount)

字段 类型 约束 备注

tId number(10) 主键 交易记录流水号

tType number(2) 引用交易类型表 交易类型ID

tCardID number(19) 引用yhk信息表 交易卡号

tamount number(10) 非空 交易金额

tDate date 非空 交易时间

8、 yhk转账等交易记录表(tb_TransInfo)

字段 类型 约束 备注

tId number(10) 主键 交易记录流水号

tType number(2) 引用交易类型表 交易类型ID

tCardIDout number(19) 引用yhk信息表 交易金额转出卡号

tCardIDIn number(19) 引用yhk信息表 交易金额转入卡号

tamount number(10) 非空 交易金额

tDate date 非空 交易时间

一两句话也说不清楚,能生成自然也能调用,关键是你表的构成方式,可以用查询的方式获取,

这里按你的想法流水号自动生成方式可以改一改,改成以日期为作为总流水号,这样方便

其实你这个总流水可以不用,一个统计查询就可以解决

方法1:这个流水号最好放在押金单数据表里,字段设置为自增长长整数类型,Step=1,索引不重复,这样每增加一条押金单记录,这个流水号就会自动加一,打印报表时,从数据库取出这个流水号即可。非常方便。

例:采用SqlServer2005Express,其实别的数据库很类似,尤其是微软的几乎相同。

先建立流水表:

Create Table 押金单 (

流水号 int IDENTIFY PRIMARY KEY, --自增长整数类型,主键

金额 decimal(19,2) default 0, --默认为0

押款人 nvarchar(10) not null, --非空

押款时间 datetime default GetDate() --默认为取当前系统日期和时间

)

Go;--其实如果你不熟悉Sql语法,也可以用视窗设计界面来进行直观设计,无论是sqlserver还是Access,还是Foxpro还是别的数据库,都有类似的视窗设计界面。

每回创建新的押金单时那个流水号就会自动增一,不需要你再处理,数据库帮你做了。

在你用水晶报表打印押金单时,取出相应的记录即可。水晶报表的设计不用我说了,网上很多,拉数据还是推数据决定权在你。

方法2:将流水号记录进入文本文件,每次生成押金单报表时从文件取出这个号然后加一,将这个好传入对应的报表对象的TextObject对象,并保存流水号文件,这样做需要你经常检查这个文件以防止重复。

例:

创建一个文本文件,里面内容为最后的流水号文本,刚开始时可以是0,建立新的押金单时,读取这个文本的内容,转换为整数类型,加一,然后存回文本文件,同时,水晶报表对象假设为:rpt押金单,其中有一个文本框为流水号,名字为:TextLiushui,那么可以用报表的: rpt押金单ReportDocumentReportDifinitionReportObjects["TextLiushui"]Text=[新流水号];这条语句为这个文本框赋值,剩下的工作你自己完成了。记住[rpt押金单]一定是初始化过后的报表对象!

这两个例子你可以试一试。

两者主要在是否会记录每一个修改、用途以及是否可以很快的还原客户记录等三方面存在区别。

一、是否会记录每一个修改

拉链表:拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录而已。

流水表:流水表对于表的每一个修改都会记录,可以用于反映实际记录的变更。

二、用途

拉链表:拉链表常用于统计账户及客户的情况。

流水表:流水表常用于统计业务相关情况。

三、是否可以很快还原客户记录

拉链表:通过拉链表可以很方便的还原出拉链时点的客户记录。

流水表:流水表虽然也可能做得到,但是效率不行,或者需要人工参与。

扩展资料

拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。

拉链表的作用:

1、数据量比较大。

2、表中的部分字段会被更新,比如用户的地址,银行利率,订单的状态等。

3、 需要查看某一个时间点或者时间段的历史快照信息,比如,查看利率在历史某一个时间点的状态。

4、变化的比例和频率不是很大,比如,总共有1000万的会员,每天新增和发生变化的有10万左右。

5、如果对这边表每天都保留一份全量,那么每次全量中会保存很多不变的信息,对存储是极大的浪费;

拉链历史表,既能满足反应数据的历史状态,又可以最大程度的节省存储。

参考资料来源:百度百科-拉链表

以上就是关于JAVA设计虚拟ATM机。其中数据库怎么设计(详细的数据库设计)。。。。知道的告诉我一下!谢谢拉全部的内容,包括:JAVA设计虚拟ATM机。其中数据库怎么设计(详细的数据库设计)。。。。知道的告诉我一下!谢谢拉、怎么调用刚生成的流水号。用Java,MySQL写数据库课程设计:点餐系统。添、水晶报表中,增加流水号的 *** 作方法 希望得到的效果: 每次打开报表,流水号自动+1. 我要做一个押金单的报等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9327315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存