好的,我参加聚会有点晚了,但这里有一些有趣的答案,我想我应该补充一下。
回答这个问题:您应该将值存储为正数并标记为借方还是贷方?
简短的回答:您不需要添加标志,因为当您以正确的签名形式保存号码时,任何系统都会自动应用标志“借方”或“贷方”。这是“-”号。您应该将值存储在借方或贷方两列之一中吗?当然不 !为什么要为系统中的每笔交易保存一个空白字段?具有正确符号值的单列更易于管理。
问题标题的较长答案:会计和数据库设计,存储借方和贷方金额。
只要您了解复式记账法,它就非常简单且可靠。当您将日记帐过帐到名义分类帐时,您为用户提供了日记帐中每一行的借方字段和贷方字段。在您的应用程序中,您只允许其中一个字段具有值(每行),并且它必须是正的、无符号的值。当你写交易时,如果你有借记,你就按原样写。如果信用字段中有值,则将其反转并将其写为负数。数据库在每行(记录)的单个列中只能看到一个带符号的值。任何会计师都会告诉您日记帐分录必须平衡,因此日记帐交易行的数据库记录加起来为零。应用程序代码必须确保日志必须是平衡的。
现在考虑用户添加到系统的购买发票。假设我们有 Widget Company 的这张(不太可能的)发票:
钢筋 500 英镑
一盒信封 100 英镑
10000 英镑的车床
2120 英镑购置税
12720 英镑的发票总额
应用程序将单个记录写入文档表。它具有到事务表的一对多链接。对于三行发票,应用程序写入 5 个交易行。
500 英镑与销售成本相关联,这是一个损益总帐帐户。借方余额 = 损益时的费用
£100 关联到 Stationery,这是一个损益总账账户。借方余额 = 损益时的费用
£10000 链接到机械,资产负债表总分类帐帐户。借方余额 = 在银行时的资产。
2120 英镑与可退还进项税相关联,这是一个 bs gl 帐户。借方余额=资产,税务员欠我们钱
-£12720 链接到 Creditors Control,一个 bs gl 帐户。贷方余额=负债,这是我们欠供应商的
写入交易表的 5 条记录的总价值 0.00 英镑。
现在考虑用户添加的销售发票:
高级小部件 250 英镑
标准小部件 250 英镑
100 英镑的销售税
600 英镑的发票总额
再次将一条记录写入文档表。对于两行发票,写入 4 个交易行。因为这是一张销售发票,所以应用程序必须在后台反转值。销售发票行是簿记信用,但用户不希望将它们添加为负值。
250 英镑 - 链接到 Premium Widget Sales,一个盈亏账户。贷方余额=损益时的收入/利润
250 英镑 - 与 Standard Widget 销售相关,这是一个损益表帐户。贷方余额=损益时的收入/利润
£100- 与应付销项税挂钩,一个 bs gl 帐户。信用余额 = 在 BS 中的负债。我们欠纳税人这笔钱。
£600 链接到 Debtors Control,一个 bs gl 帐户。借方余额=资产,这是客户欠我们的。
写入交易表的 4 条记录的总价值 0.00 英镑。
如果您想为退回的商品提供信用,可以在销售发票中添加负数行。在编写交易之前,它们只是与所有其他行相反。更常见的是,您会签发一张贷方通知单,其中的行记为销售收入的借方,从而降低损益表中的销售价值。
如果系统进行库存控制,数量将写入交易行,并将它们链接到产品表。
银行分录经常把非簿记员赶出去。他们说,我们把钱存入银行,所以我们记入了账户。将银行视为企业外部的人。当您交出钱以妥善保管时,她/他将成为债务人,并且必须按要求归还您的钱。因此,银行的收入记录为借方,而支付的款项记录为贷方。当我们收到客户的付款时,我们会编写两条交易行:
£600 链接到银行账户,一个 bs gl 账户。借方余额 = 增加资产的价值,我们有更多的钱。
600 英镑 - 链接到 Debtors Control,一个 bs gl 帐户。贷方余额 = 降低资产价值,欠我们的钱更少。
写入事务表的 2 条记录的总价值 0.00 英镑。
如果您按照此操作,您会看到在开具销售发票时,Debtors Control 已写入 600 英镑,在收到付款时已写入 600 英镑。净余额 = 0.00 英镑,这是我们客户现在所欠的。
因此,通过正确的设计、关系和索引,所有报告都是通过文档和交易的组合完成的。
就是这样。每次对事务表求和时,它都应始终返回零。无需维护两列。应用程序需要做两件事,需要对其进行编码,以便将正确的签名应用于各种交易类型,并且需要根据交易是 >0 还是
建立一个在一个交易中记录双重输入的双方的系统很有吸引力。如果单笔交易失败,它不会使账户失衡。您仍然只有一列的值,已签名。您将为每笔交易记录两个 gl 外键,一个用于记录您记录的值,可以是表示借方或贷方的正值或负值,另一个 gl 外键用于记录您发布的帐户反对('双重输入')值。您可能还需要为两个税控帐户记录 gl fk,一个用于销项税控制帐户,一个用于进项税控制帐户。因此,您最终可能会将您的交易行链接到四个 gl 帐户,而不仅仅是一个(加上适用于这两种方法的客户、供应商和产品表的链接)。控制账户将有大量与之相关的交易。一张 10 行的发票将有 10 个交易链接,而不是每个文档只有一个。您必须单独计算每个发票行的税项,而不是作为文档的总计(无论如何您都可以这样做)。最后,您必须对日记帐分录文档进行特殊安排,其中可能包括 10 行作为借方,所有借方作为贷方抵消,因此单交易方法在这里不起作用。