Closed. This question is opinion-based 。它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文来回答。

6年前关闭。



Improve this question




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

custid、orderid、支付金额等

这张表被用于销售报告和你有什么。

现在我们想给客户某种信用,礼券或退款。

将它与 -amount 一起输入到同一个表中是一个坏主意吗?还是把这些放在另一个 table 上更好?

以这种表结构开始设置站点是否存在重大缺陷?

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

谢谢,

最佳答案

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

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

您需要决定如何计算客户的整体平衡,将进/出存储在多个位置会使这变得比应有的更难。所以你又回到了一个单独的存入/存出商店和一个单独的元数据 存储关于退款

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

Refund
------
PurchaseId
Reason

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

碰巧这更接近真实世界的纸质分类帐和单独的“退款”书。

我从来没有这样做过,这只是我想出来的:-)

关于database - 在数据库中处理退款或/存储积分的最佳方式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3999789/

10-10 19:19