【发布时间】:2012-03-26 12:54:30
【问题描述】:
我正在设计一个在线会计系统作为大学项目。我有以下简单的交易。
现金销售 300 美元
从史密斯那里挖来的现金 250 美元
支付 50 美元的电费
我已经推荐Double Entry Accounting in a Relational Database 并设计了上面的交易表(减号表示金额已记入)。 id 1 和 2 属于事务 1,id 3 和 4 属于事务 2,依此类推。如何在 MySQL 数据库中将每两行标识为单个事务。例如,如果要选择第一个事务,我该怎么做,因为两行之间没有关系。如果这个设计听起来不好,你能建议一个替代方案吗?
【问题讨论】:
-
你可以为你的表添加transaction_id。
-
感谢响应。我想必须为每个事务手动添加它,并且我无法自动增加该字段。我找不到将不同行中的帐户关联起来的方法。
-
从技术上讲 - 从严格规范化的角度来看,每笔交易有 2 个条目。您可以将事务 id 保存在一个单独的表中并在那里自动增加它们,然后在这个“事务”表中引用它们。当然,如果您要保存数万亿次交易的信息,那么自动递增的整数可能不如应用程序确定的唯一字符串有用...
标签: php mysql database-design accounting