<分区>
简单的问题
参见 http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html
好的,有 3 个表 ACCOUNT、JOURNAL 和 POSTING
如果要有交易状态,状态栏应该放在哪里?
- 状态应该在 Journal 表中
- 状态应该在发布表中
请解释您的选择,谢谢。
<分区>
简单的问题
参见 http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html
好的,有 3 个表 ACCOUNT、JOURNAL 和 POSTING
如果要有交易状态,状态栏应该放在哪里?
请解释您的选择,谢谢。
最佳答案
简单但有技巧的问题?不需要成功/失败状态,因为 JOURNAL 是一个逻辑工作单元,它的所有 POSTING 都是该工作单元的一部分。因此,如果逻辑工作单元成功,则 JOURNAL 及其 POSTINGS 要么存在,要么如果工作单元不成功,则 JOURNAL 及其 POSTINGS 不存在。
这个简单的测试(它在那里是因为它有效,它不在那里是因为它没有)是一个事实的结果,即有一个业务需求来确保 JOURNAL 包含一个由连续的数字序列组成的候选键,这是必要的,因为它给审计人员一种错误的安全感。
在真实世界的系统中,会有第二组表,按照 PENDING_BATCH、PENDING_JOURNAL 和 PENDING_POSTING 的顺序排列,其中包含尚未完成的交易。将各种状态信息保存在这里是有意义的。待处理事务的事务状态属于 PENDING_JOURNAL 表,因为整个日志及其所有发布必须作为一个单元成功或失败,因此单元的状态应规范化为父记录(即 PENDING_JOURNAL)。
关于sql-server - 复式记账数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7268871/
相关文章:
sql - 您可以在 SQLServer 2k5 中的链接服务器表的 View 上使用外键吗?
c# - SQLFileStream 异常 "The network path was not found"
sql-server - SQL 服务器 : case multiple operations in then part
sql - 选择的 Where 子句 - 非 Ascii 字符?
sql-server - 如何使用 Lightswitch 项目将新表和/或字段添加到 "external"Azure SQL 数据库?