数据导入
表一 商家表
sj表结构:
id,name(名称),num(编号),leibie(类别),rate(费率),fengding(封顶),ticheng(提成),rateDate(费率执行日期),tichengDate(提成执行日期)
表二 交易记录
jiaoyi表结构
id,jiaoyiDate(交易时间),sjnum(商家编号),sjlb(商家类别),money(交易金额),rate(费率),fengding(封顶),ticheng(提成),shouxufei(手续费)
业务逻辑:
从格式化的txt文本里读取交易记录信息,并插入到jiaoyi表里。
1、txt文本读取数据
2、读取数据后进行判断,
<1>、此交易记录的商家是否存在于sj表里 selct * from sj where num='sjnum'
<2>、更改费率、提成(如果交易时间 大于 费率执行日期则更改jiaoyi表里 rate为 sj表设定的rate,否则保持不变)
select * from sj where DATEDIFF (s,rateDate,jiaoyiDate)>0 and num='sjnum'
<3>、更改提成(如果交易时间 大于 提成执行日期则更改jiaoyi表里 ),为 sj表设定的),,否则保持不变)
select * from sj where DATEDIFF (s,tichengDate,jiaoyiDate)>0 and num='sjnum'
<4>、手续费的计算
根据费率、封顶、交易金额算出手续费
说明:交易时间在 费率执行日期、提成执行日期之后的按照商家表里设定的费率、提成 否则不予更改
从txt读取所有数据后,进行循环修改 。每循环一次 都要对 数据库进行三次的查询操作。而txt文本的数据每次都在三千行以上,也就是说,循环修改三千条的数据要进行九千次的读库,三千次的手续费计算,时间消耗太长,性能跟不上。
如何提升性能,或是有更好的数据库设计来满足条件。