【发布时间】:2012-06-13 01:06:21
【问题描述】:
我正在为一个游戏制作一个小插件,它需要存储玩家的信息:
- 用户名
- IP 地址
- 游戏中的位置
- 来自该 ip 的备用用户名或来自该用户名的备用 ip 地址的列表
我前段时间读过一篇文章,说除非我存储大量无法保存在ram中的信息,否则我不应该使用数据库。所以我尝试在 python 中使用 shelve 模块,但我不确定这是否是一个好主意。
你们认为什么时候使用数据库是个好主意,什么时候以另一种方式存储信息更好,除了数据库和平面文件数据库之外,还有哪些其他方式来存储信息。
【问题讨论】:
-
想一想:你需要存储一些“持久”的东西吗?
-
我会将其存储在配置文件中,在程序运行期间将其读入内存,然后在进行任何更改时将其写回配置文件。
-
@xvatar:如果你的回答是“是”,那么下一个问题是“我真的需要比文本文件更重的东西吗?”
-
在 Python 的默认分发中,有许多选项可供您用于持久化数据:JSON、pickle、shelf、sqlite3、简单文本文件。查看每个并选择。
-
这个问题无法真正回答,因为未知数太多(任何答案都取决于意见和讨论)。 FAQ 提到讨论问题不适合 SO,因为它是围绕“提出问题,获得明确答案”而设计的。这里没有一个可以给出“正确”的单一答案。