货币SQL数据结构

时间:2015-07-14 22:27:26

标签: php mysql sql laravel currency

我想在我一直在努力的自定义论坛上开发货币系统,但我不知道最好的方法。

我应该添加新的"黄金"字段到我的用户表并用sql语句递增?

id, user, pass, created_at, gold

逻辑:用户创建新的论坛帖子;更新用户表:gold + 1

我应该添加记录所有内容的事务表并执行count where user = x吗?

id, user_id, amount
 1        3       1 (new forum post)
 2        3       1 (new forum post)
 3       12      -5 (item purchase)
 4        3      -1 (deleted post)
 5        9       1 (new forum post)

还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

这在很大程度上取决于你想用它做什么以及你喜欢哪种方式。

虽然接受了一些事实:

  • 我希望论坛能够快速发展。为此,您应该只使用简单的Select。像SUM()这样的函数需要花费更多的时间来执行。在一个很可能不会出现问题的小系统中,但是mysql-db通常会非常糟糕,所以你应该从一开始就牢记这一点。

  • 您肯定想要一种跟踪交易的方法。主要是为了能够检查实际发生的情况。即使你制作了一个很好的系统来处理你的黄金,你仍然希望跟踪不时发生的事情。为此,它可以更方便地存储交易。

  • 冗余数据和事务同步可能是个问题。每个事务系统都有问题保持一致同步。使用MySQL并不困难,因为在执行事务时可以锁定表。但冗余数据更令人痛苦。您必须确保在其他操作可能发生干扰之前在任何地方同时更改数据。

在基本系统上,我将数据存储在用户表中,并将所有事务作为日志保存在另一个表中。但永远不要用它来输出给用户。进一步取决于您的系统需求。