首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计数据库:将用户统计数据存储在游戏中(即拥有的金钱)和32位整数溢出。

设计数据库:将用户统计数据存储在游戏中(即拥有的金钱)和32位整数溢出。
EN

Stack Overflow用户
提问于 2010-01-08 17:27:13
回答 4查看 185关注 0票数 0

我正在创建一个小爱好数据库驱动的基于浏览器的游戏,我偶然发现了这个问题:我将用户拥有的钱存储为一个32位整数字段(确切地说,是两个字段)。一种是把钱储存在玩家手中,另一种是储存在银行里。我们都知道,可以存储在32位的最大值是2^32-1。

我绝对相信,95%的玩家将无法达到上限--但另一方面(在今天做了一些计算之后),优秀的玩家将能够积累那么多。

考虑到这一点,我提出了以下想法:

runtime.

  • change

  • 将货币存储在64位,这使每个记录的空间翻了一倍。

  • 将钱存储为字符串,并在游戏机制中转换为long long,这样玩家就无法获得那么多的财富。--

我知道,对于一些球员来说,可达上限的存在是相当有限的,所以对我来说,第三种选择是最糟糕的。

是否有其他方法处理这类问题?你会选哪一个?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-08 23:02:40

更改为更大的数据类型可能是最简单的解决方案,除非您的游戏规模很大,否则磁盘空间/内存的考虑可能不会很大。有5000名用户在玩你的游戏吗?从32位到64位的转换将消耗大约20k的额外资源。这还不足以让你睡不着觉。

最好的答案可能来自熟悉银行如何处理这类情况的人,尽管他们的要求可能比你需要的要复杂得多。

票数 1
EN

Stack Overflow用户

发布于 2010-01-08 17:32:09

以现实世界为例,为什么不使用不同类型的硬币呢?例如,一百万美元的一栏硬币。

票数 2
EN

Stack Overflow用户

发布于 2010-01-08 17:31:54

内存上的空间不应该是一个问题,取决于您同时拥有的播放器的数量,但是存储为字符串肯定会占用更多的磁盘空间。

但是说真的,4294,967,296卢比/西蒙斯/弗隆?他们是谁?Sim盖茨?

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

https://stackoverflow.com/questions/2029364

复制
相关文章

相似问题

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