读书人

资金的收支累计。应该如何设计

发布时间: 2012-12-24 10:43:14 作者: rapoo

资金的收支累计。应该怎么设计
比如有一个表格,要显示资金的收支清单。每一行都要显示收入、支出、资产总额的累计值。

那这个收入支出表应该怎么设计合理呢?

如果在收支表中曾加这3个字段,也就是每插入一条数据,在新的一行数据中都更新这3个字段值,这样虽然查起来很方便,但插入数据时是个问题,比如一次事务可能要插入多条数据。另外,只要有一次计算出错,那以后的插进来的所有数据就都是错的。

请大家不吝赐教
[最优解释]
第一个事务修改提交前,第二个事务一直处于等待状态 直到第一事务提交
[其他解释]
帮顶
[其他解释]
这字段存储维护起来很麻烦 ,出报表时 动态计算比较合适。
[其他解释]

引用:
这字段存储维护起来很麻烦 ,出报表时 动态计算比较合适。


如果是在一个带分页的页面里显示,动态计算方便吗,另外数据量之后速度会不会很慢呢
[其他解释]
另外系统运行时间长了之后 ,从第一笔推到现在,跨越的计算很大吧
[其他解释]
引用:
如果是在一个带分页的页面里显示,动态计算方便吗,另外数据量之后速度会不会很慢呢

肯定会影响查询速度,你需要找一个平衡点,如果统计复杂,可以适当增加冗余字段保存计算值,或者用计算列。
[其他解释]
计算慢 可以想办法使速度 尽量快 。但是如果保存起来 就等于给自己挖了个坑。
[其他解释]
引用:
计算慢 可以想办法使速度 尽量快 。但是如果保存起来 就等于给自己挖了个坑。


我也觉得。。。
求推荐方法
[其他解释]
之前公司的资金出入表也是这么设计的,在插入每一条数据时就计算一次出入账以及总计,这样以后查询也很方便。
[其他解释]
写个函数 查询时 调用函数返回需要的三列数据,如果速度还是不行 可以每天晚上更新出计算的三列数据到辅助表 这样速度就上去了。总之方法多多
[其他解释]
引用:
之前公司的资金出入表也是这么设计的,在插入每一条数据时就计算一次出入账以及总计,这样以后查询也很方便。


如果这么设计,当多个人对同一个帐户进行操作的时候。怎么才能保持正确呢,

比如当前最后一条数据总计是100,此时两个人取出了这条数据,然后都执行了扣5块钱操作。如果不作任何处理,保存进去的是两条总计95的数据,而不是一条95,一条90
[其他解释]
人工顶顶的的
[其他解释]
引用:
引用:之前公司的资金出入表也是这么设计的,在插入每一条数据时就计算一次出入账以及总计,这样以后查询也很方便。

如果这么设计,当多个人对同一个帐户进行操作的时候。怎么才能保持正确呢,

比如当前最后一条数据总计是100,此时两个人取出了这条数据,然后都执行了扣5块钱操作。如果不作任何处理,保存进去的是两条总计95的数据,……

真要这么操作 必须要更改sqlserver的默认隔离级别 改为可重复读 这样只能按顺序更新 不会出现上述问题。
但是这样并发性 就不会特别高 要看实际应用的需求 来取舍
[其他解释]
引用:
引用:
引用:之前公司的资金出入表也是这么设计的,在插入每一条数据时就计算一次出入账以及总计,这样以后查询也很方便。

如果这么设计,当多个人对同一个帐户进行操作的时候。怎么才能保持正确呢,

比如当前最后一条数据总计是100,此时两个人取出了这条数据,然后都执行了扣5块钱操作。如果不作任何处理,保存进去的……


可重复读
是不是当我开始第一个事务读到100后,第二个事务在读取数据时就被卡住了,知道第一个事务完成才能继续?

读书人网 >SQL Server

热点推荐