【问题标题】:Linking payables and general ledger in the database schema在数据库模式中链接应付账款和总账
【发布时间】:2011-05-14 16:35:04
【问题描述】:
2010 年 12 月 13 日 a question 被问到:
我正在寻找总账和应付账款的行业标准逻辑数据模型。是否有现成的会计数据模型?
肯唐斯回复:
摘录:
最基本的分类帐是 3 个表:Accounts、Batches 和 Transactions。所有交易 > 必须成批。有些人为借方和贷方做了两列,我总是做一个>列,借方和贷方的符号相反。
应付账款也很简单。它的核心是一张供应商表和一张>凭证/发票表。终于生成了一张支票表……然后,美化品尝:)
由于发票和支票表都会影响总帐,我是否正确假设每个都需要存储唯一的批号?模式是否会显示 invoice:batch 和 checks:batch 表的 1:1 关系?非常感谢您的建议。
【问题讨论】:
标签:
database-design
accounting
【解决方案1】:
这里不会有任何一对一的关系。例如,您始终可以在一个批次中支付多张发票。批处理表的想法是,从会计的角度而不是从编程的角度来看,它是一个单一的“工作单元”。
没有特别需要批处理,只是它有助于根据谁做了什么和什么时间来组织信息 - 特别是它提供了从业务角度来看一组交易在逻辑上相互关联的指示.
帐户是一个查找表。 Transactions 是交易细节,而 Batch 是交易标头。我同意@OP 的问题中的 Ken Downs 的观点,即单个金额字段就足够了。单独的借方和贷方列没有意义。这个想法来自纸质会计世界,并且在所有算术都是手工完成的那一天很有用。在计算机化的场景中,这种想法是不合时宜的,实际上造成的麻烦多于其价值。我不同意肯·唐斯(Ken Downs)的观点,因为他的借方和贷方符号相反。这在特定帐户的上下文中是正确的,但根据会计惯例,不同类型的帐户的借方金额可能为正数或负数。资产和收入朝一个方向发展,而负债和费用朝另一个方向发展。交易表中的数字是正数还是负数将取决于交易适用于哪种类型的帐户。
您需要进行的一项修改是,当您正确应用借方和贷方时,每个批次都应平衡为零。测试此编辑的逻辑需要知道批次中的每个帐户是资产、负债、收入还是费用 - 因此这需要成为您帐户表的属性。
至于支票、代金券、发票和所有其他东西 - 您可能需要,但不一定需要所有这些。拥有它们的原因不是为了严格的帐户余额跟踪,而是为了您可以保留在那里的所有其他指示性信息。您可以将所有这些指示性信息保存在批处理表上的“哑”文本字段中(即“备忘录”)。这就是他们在旧高椅、遮阳板和羽毛笔时代的做法。但是,拥有供应商发票表很方便,因为它可以让您做一些方便的事情,例如查询来自特定供应商的所有发票的列表。支票、发票(应收账款)、报表等其他具体业务实体也是如此。