gpt4 book ai didi

mysql - 借记/贷记/支付服务的数据库设计

转载 作者:搜寻专家 更新时间:2023-10-30 20:58:49 25 4
gpt4 key购买 nike

我正在设计一个网络服务,它会向用户支付费用以完成某些任务。例如,如果用户点击一个链接,他们的帐户将获得 0.10 美元的报酬。用户每天最多可以执行其中任何一项任务 20 次。为了让用户请求向他们支付资金,他们的账户余额必须为 5 美元。

我正在尝试确定跟踪交易和帐户的最佳方式。我的设计目前看起来如下:

Accounts
---------
| account_id | member_id | balance |
-------------------------------------
| 1 | 1 | 497.8500 | -- System Account
| 2 | 5 | 2.1500 |

Transactions
------------
| transaction_id | account_id | type_id | task_id | date | amount |
-------------------------------------------------------------------
| 1 | 1 | Debit | 1 | date | -1.10 |
| 2 | 2 | Credit | 1 | date | 1.10 |
| 3 | 1 | Debit | 1 | date | -1.05 |
| 4 | 2 | Credit | 1 | date | 1.05 |

此设计基于复式记账的会计原则。现在我的困境是:从技术上讲,用户在请求“付款”之前不会收到这笔钱。 “付款”包括用户提交请求、请求被批准、从他们的账户余额中扣除并通过 PayPal 发送给他们的钱。所以我的问题是,如果用户还没有请求支付,那么从系统余额中实际扣除金额是个好主意吗?他们帐户中的钱可用于为网站上的其他内容提供资金,它也会在 30 天不活动后过期。

我的想法是保持交易表不变,设计另一个名为 payouts 的表,结构如下

Payouts
-------
| payout_id | account_id | date | amount |
------------------------------------------
| 1 | 2 | date | $2.00 |

但是我如何在交易表中反射(reflect)支出?似乎不完整。

我是否应该将任务与交易表分开,并且只在用户请求付款时才输入交易记录?我不确定这样做是否会失去审计能力。

有没有人有一些见解?

最佳答案

只需使用另一个帐户/分类帐/ Assets 负债表代码

So on getting the 10c 
Your account is - 10c
Their payout account is + 10c
When the balance on their payout account > $5, then can request one.
When they do debit the amount from payout account, credit it to Payoutpending account
When it confirmed debit payout pending and credit payed out.
If it's rejected debit payout pending and credit payout account

.

哦,你真的需要考虑存储余额,而不是计算和报告余额,否则你会把事情搞得一团糟。

关于mysql - 借记/贷记/支付服务的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com