最后一列为备注
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. 我要做一个押金单的报等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)