我是NoSQL数据库的新手,虽然我已经很多地寻找它,但是我找不到这种方法的最佳实践。
步步高,对于那些不知道的人来说,是一个有24个点子(或插槽)的棋盘游戏,还有一个可以包含任何颜色的棋子的棋子(被击中的棋子放在酒吧)。另外,每个点(或槽)可以包含一个或多个相同颜色的块。
我正在寻找的结构应该进行优化,以帮助我快速计算两件事:
我想到的结构是这样的:
{
1: {
color: 'black',
pieces: 2
},
2: {
color: 'white',
pieces: 1
},
3: {}
// etc, until 24
24: {}
bar: {
{
color: 'white',
pieces: 1
}
}
}
这种方法的唯一问题,正如您无疑可以看到的那样,是bar
。由于条形图可以包含任何颜色的碎片,因此我必须在bar
键内创建另一个对象,以便稍后可以根据需要添加颜色为black
的碎片。
有更好的结构吗?此外,我很欣赏这个结构表现得如何/糟糕的提示和技巧。
答案 0 :(得分:2)
考虑到你只有1 document
具有相对恒定的大小,你可以放心地假设这1 document
将保留在内存中,因此你不应该过多担心性能问题更多,只有一个文件 - 它基本上是问我的HashMap
表现有多好......
如果由我决定,我会把酒吧分成2个栏 - bBar
和wBar
(就像在现实生活中一样,每个玩家旁边都有自己的酒吧来保持他的自己“吃掉”的作品。)
顺便说一下,任何涉及最佳动作的计算都应该在内存中进行。您不应将中间计算结果存储在DB