我想在我一直在努力的自定义论坛上开发货币系统,但我不知道最好的方法。
我应该添加新的"黄金"字段到我的用户表并用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)
或还有更好的方法吗?
答案 0 :(得分:1)
这在很大程度上取决于你想用它做什么以及你喜欢哪种方式。
虽然接受了一些事实:
我希望论坛能够快速发展。为此,您应该只使用简单的Select
。像SUM()
这样的函数需要花费更多的时间来执行。在一个很可能不会出现问题的小系统中,但是mysql-db通常会非常糟糕,所以你应该从一开始就牢记这一点。
您肯定想要一种跟踪交易的方法。主要是为了能够检查实际发生的情况。即使你制作了一个很好的系统来处理你的黄金,你仍然希望跟踪不时发生的事情。为此,它可以更方便地存储交易。
冗余数据和事务同步可能是个问题。每个事务系统都有问题保持一致同步。使用MySQL并不困难,因为在执行事务时可以锁定表。但冗余数据更令人痛苦。您必须确保在其他操作可能发生干扰之前在任何地方同时更改数据。
在基本系统上,我将数据存储在用户表中,并将所有事务作为日志保存在另一个表中。但永远不要用它来输出给用户。进一步取决于您的系统需求。