我正在设计一个在线会计系统作为一个大学项目。我有以下简单的交易。
现金销售 300 美元
从史密斯那里挖来的现金 250 美元
支付了50美元的电费
我在关系数据库中提到了复式记账并设计了上面的交易表(减号表示金额已记入贷方)。id 1 和 2 属于事务 1,id 3 和 4 属于事务 2,依此类推。如何在 MySQL 数据库中将每两行标识为单个事务。例如,如果要选择第一个事务,我该怎么做,因为两行之间没有关系。如果这个设计听起来不好,你能建议一个替代方案吗?
我正在设计一个在线会计系统作为一个大学项目。我有以下简单的交易。
现金销售 300 美元
从史密斯那里挖来的现金 250 美元
支付了50美元的电费
我在关系数据库中提到了复式记账并设计了上面的交易表(减号表示金额已记入贷方)。id 1 和 2 属于事务 1,id 3 和 4 属于事务 2,依此类推。如何在 MySQL 数据库中将每两行标识为单个事务。例如,如果要选择第一个事务,我该怎么做,因为两行之间没有关系。如果这个设计听起来不好,你能建议一个替代方案吗?
除非确实有必要,否则您应该放弃两线设计。我会合并这些行并添加一个额外的字段,如果它是现金,你可以在其中存储,并且金额值在贷记时为 +,如果是借记(或冲销,我不擅长会计:))
做得好。
我唯一可以添加的是借方和贷方的两个数字列。那看起来就像教科书或旧簿记中的日记。它会更加明显,并且可以处理任意数量的重复条目。如果您愿意,您当前的金额栏可以通过借记 - 贷记来计算。
我认为您不需要将其关联起来,除非您想要一个特定的会计科目表作为表格,更复杂且不那么优雅。但是,为了更灵活,您可以从日记帐生成实时会计科目表。
由于您使用的是 MySQL 关系数据库,因此您可以添加多个表。
要回答您的问题,您需要创建另一个表来保存每个事务的一般信息(例如,您可以将其称为 a TRANSACTIONS
)。该表可以包括Transaction ID
和Date Column
。现在,在您当前存在的表中引用表的Transaction ID
列。TRANSACTIONS
这意味着记录 1 和 2 将有一个Transaction ID
,因此您可以在查询中引用它。