处理退款或/在数据库中存储积分的最佳方式?

ken*_*thj 5 database database-design e-commerce

假设我有一个 Web 应用程序,它是某种商店。我有一张保存所有货币交易的表。

custid、orderid、支付金额...等

这张表用于销售报告以及您拥有的东西。

现在我们想为客户提供某种信用,可以是礼券,也可以是退款。

将其与 -amount 一起输入到同一个表中是一个坏主意吗?或者将它们放在另一个表中更好?

使用此表结构来设置站点是否存在重大缺陷?

我已经设置了一些这样的系统,但没有得到其他人的太多反馈,你们通常如何设置像数据库这样的存储表。

谢谢,肯

Ada*_*han 3

通常情况下,您退款是有原因的,因此此用例的架构已经与购买的架构不同。

那么现在您的选择是是否应该将退款存储在两个地方?拥有多个事实来源总是让我感到不舒服。

您将需要决定如何计算客户的整体平衡,将输入/输出存储在多个位置将使这变得比应有的更加困难。因此,您又回到了拥有一个用于资金进出的商店和一个单独的商店来存储有关退款的元数据的情况。

Purchase
--------
PurchaseId
ItemId
CustomerId
Payment

Refund
------
PurchaseId
Reason
Run Code Online (Sandbox Code Playgroud)

显然还有其他字段,正如您所说 -ve 退款值

碰巧这更接近现实世界的纸质分类账和单独的“退款”簿。

我从来没有这样做过,这只是我大声思考:-)