首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在SQL中存储多个虚拟货币

如何在SQL中存储多个虚拟货币
EN

Stack Overflow用户
提问于 2011-12-06 18:04:30
回答 5查看 183关注 0票数 1

我有一个名为users的表,当前包含列、整数类型的,其中包含用户当前的钱数。

然而,我想扩大并有更多的基于彼此的货币。1金= 10银= 100铜(或类似的东西)。当你得到100铜,他们将转换为1金。同样的10铜=1银。所有这些货币在我的表中都有它们自己的列。我有一个钩子函数,它在每个请求中调用并在可能的情况下更新货币。

我被告知,虽然我可以使用,只需一列,然后我就可以使用变量并取出不同的货币。

但我的问题是:,什么是最好的方法?

如果后一种方法是最好的:如何将变量放入已经存在的对象(包含用户数据的对象;我认为它称为stdClass或类似的东西)?$user->username等等?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-06 18:11:44

只需储存同等数量的青铜。然后使用以下算法尽可能多地转换成黄金,从剩余的尽可能多地转换成银,其余的则保持在青铜中:

  1. 将黄金的数量设置为零,将银设为零,将青铜的数目设置为任何数据库所说的。
  2. 将银的数量设置为等于青铜的数量除以10 (使用整数除法)。设置青铜的数量等于青铜的数量10。
  3. 设置黄金的数量等于银的数量除以10(使用整数除法)。将白银的数量设置为等于银mod 10的数目.

所以如果你有9327个青铜:

bronze=9,327

  • gold=0,

  • gold=0,silver=0, silver=932,bronze=7
  1. gold=93,silver=2,bronze=7
票数 4
EN

Stack Overflow用户

发布于 2011-12-06 18:08:39

我以前也做过类似的事情,我同意你应该有“货币”一栏,并根据需要计算其他货币。如果有单独的列,则必须依赖触发器或应用程序逻辑来保持它们的同步。

票数 0
EN

Stack Overflow用户

发布于 2011-12-06 18:10:51

我会把所有的东西都变成青铜,然后把它储存起来。任何类型的交易也将首先被转换为铜牌。你唯一需要转换成白银或黄金的时间就是展示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8404551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档