双入口会计数据库设计

时间:2011-09-01 10:11:18

标签: sql-server database sql-server-2005 sql-server-2008 database-design

简单的问题

请参阅http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html

好的有3个表ACCOUNT,JOURNAL和POSTING

如果您想拥有交易状态,状态栏应该在哪里?

  1. 状态应位于日记帐表
  2. 状态应位于过帐表格
  3. 请解释您的选择,谢谢。

1 个答案:

答案 0 :(得分:4)

简单,但技巧问题?不需要成功/失败状态,因为JOURNAL是一个逻辑工作单元,其所有POSTING都是该工作单元的一部分。因此,如果逻辑工作单元成功,或者如果工作单元不成功则不存在,则“期刊”及其“发布”都存在。

这个简单的测试(它在那里,因为它没有,因为它没有),这是因为有一个业务要求,以确保JOURNAL包括一个由不间断的数字序列组成的候选键,这是必要的,因为它给审计员一种虚假的安全感。

在现实世界的系统中,会有第二组表,分别是PENDING_BATCH,PENDING_JOURNAL和PENDING_POSTING,其中包含尚未完成的事务。在这里保存各种状态信息是有意义的。待处理事务的事务状态属于PENDING_JOURNAL表,因为整个日志及其所有过帐必须作为一个单元成功或失败,因此应将单元的状态标准化为父记录(即PENDING_JOURNAL)。