0

我目前正在开发一个医院管理系统。我的申请将在医院有多名收银员,他们 24/7 全天候工作,他们从患者那里收钱并签发收据凭证或在退款的情况下将钱退还给患者。

目前,我正在为每笔交易存储员工用户帐户号,在一天结束时,员工打印出他用他必须发送给会计部门的总金额进行的交易清单。但我需要有人告诉我需要什么政策来防止员工在他/她的现金箱中的总金额出现任何错误。

我是否需要阻止其他人删除或修改记录,即使是会计部门的负责人?

我觉得我需要一些作为银行出纳员的东西,但我找不到可以帮助我或向我解释我到底需要在这部分的政策中加入什么的东西。

我正在使用:Java 作为 GUI 和编程语言,MySQL (Percona) 作为我的数据库,Crystal Reports 作为我的报告和打印解决方案。

4

1 回答 1

0

我认为您需要更加原子地考虑这一点。而不是有可以编辑或删除的交易,只是有发生的动作。

所以一定要让你的人在其中运行一个事务,如果有人想编辑那个事务,让他们把它作为变更集来做,有点像版本控制系统的工作方式。因此,您仍然保留有关原始交易的信息,但随后进行了应应用于该交易的更改。

如果您有一些用于事务/操作的基本 ID,然后每个更改集都指向该 ID,那么至少您可以按日期顺序将所有更改联系在一起,然后运行它们以计算出总数,您可以稍后轻松地缓存这些更改以用于性能目的上。

每当涉及到金钱时,允许编辑或删除数据是非常危险的,这就是为什么大多数地方倾向于保留所有信息并且只是将其归档为过时并在其位置放置更新的记录,或者有一些数据原始记录的踪迹以及上面发生的变化。

最终,这一切都归结为可追溯性......

于 2012-12-07T11:16:05.500 回答