上次说到要写一个简单的系统(本人是 PHP 菜鸟),但是涉及到钱的问题,单据的增删改都将影响金钱的支付和收取,在付款多的情况下,别人当然很乐意悄悄的收下,付款如果少了,那么对方也会计算出来找我们对质……
所以说准确性要够高……但是对于单据的增删改,每个单据里每一条物品的增删改,都将影响金钱问题,涉及到如此精密的操作,生怕哪里没设计好,产生 BUG ,造成经济损失,同时因为涉及到钱钱钱,每次都要小心翼翼的修改代码……
如此一来会产生 3 个代码设计方向,还请指导。
(1)单据的增删改及作废不影响钱的数据,等到单据审核后,产生金钱影响,将数值更新到各个相关的表,然后就不准再改了,打死也不准改。
(2)因为我这个系统,和客户算钱的时候(找客户要钱的时候),一般都是算一段时间的帐,偏向于记账,所以想法就是客户要结账的时候,再计算所有单据的钱,生成报表,这时候来变更各表金钱的数值,另外每个月生成报表(比如每个客户的消费、欠款情况),并锁定起来不准再改这个月的数据。
(3)单据中每个物品的增删改及作废,都实时的影响钱的数值(包括单据金额,每个客户,月帐,年帐及其他相关的)
对于以上 3 种情况 哪种更好呢? 其实我更偏向于第三种 虽然每次都要修改很多地方 甚至设计上也很繁琐 但是相对的数据更准确,但是一旦出现设计上的失误,就会发生查起来比较麻烦的问题(担心使用者同时也过于信任系统导致损失,我们目前的系统在有些环节的数据是有所不精准的,所以重新写过一个就得考虑良多),第二条也不错,但是问题就是如果数据录入错了,时间久了难以查单据啊。很容易忽略掉错误的单据?第一种看起来不错,其实和第三种类似,但是编写代码的时候会简单许多。因为复杂操作频率较低
另外一个考虑就是要用 php 编写,所以有点担心集中处理数据的时候效率问题或数据库占用 cpu 太久被服务商吊打。不知道各位达人在这种场景的时候是以哪种方式呢?好吧我猜一下,应该是第三种,每次有哪怕是再细微的变更,也影响各个表的所有相关数值……?
写得有点罗嗦了,用词也不是很专业,感谢您耐心看完。