在 PostgreSQL 中的账本实现

主要观点:作者在开发一个完全用 PostgreSQL 实现的财务账本实现pgledger,介绍了其基本操作和功能,包括创建账户、创建转账、查看账户余额和账本条目等,每个转账会更新账户余额和账本条目,并增加账户版本。阐述了使用账本的原因,如在支付领域常见,是处理金钱的基础构建块,能满足当前应用需求和报告对账等。还说明了选择 PostgreSQL 的原因,可在同一数据库事务中进行账本更新,保证事务性和原子性,且无需集成新 API 或运行新服务,便于移植到其他项目。测试用 Go 语言编写,主要因为作者常用且支持良好的并发性,已有并发测试寻找死锁和竞态条件,希望能继续开发更多功能。
关键信息

  • PostgreSQL 实现的账本[pgledger]及其基本操作代码示例。
  • 账本在支付领域的重要性及常见自建情况。
  • PostgreSQL 相比其他选项的优势,如事务性和原子性。
  • Go 语言用于测试及已有并发测试情况。
    重要细节
  • 创建账户通过pgledger_create_account函数,转账通过pgledger_create_transfer函数,查看账户余额和账本条目通过相应函数。
  • 每个转账会更新两个账本条目,记录账户的前后余额和版本。
  • 选择 PostgreSQL 可在同一事务中处理账本和其他工作,保证一致性,便于移植。
  • Go 语言测试用于寻找并发情况下的死锁和竞态条件。
阅读 8
0 条评论