1

我在想——让我们来看看任何类型的电脑游戏,或者任何一般的程序。(Chrome、Skype、魔兽……)他们需要保存一些用户希望他们保存的东西。他们是如何做到的呢?他们是将其保存在一个简单的文本文件中,还是他们自己打包一个数据库系统(如 MySQL,...)?

4

3 回答 3

3

这真的取决于你的需求。如果您只需要存储一些键值对,应用程序可以使用一个简单的文本文件(例如 *.ini 文件),但这是一个所有人都可以读取的纯文本文件。

应用程序当然也可以使用 MySql、MS SQL 等数据库。但是,如果您想分发您的应用程序,因为它们在服务器上作为单独的服务运行并且需要单独安装,这些都不是很方便。然后,还有像 Sqlite 这样的数据库,它也是一个 SQL 数据库,但它将所有内容都存储在一个文件中。您的应用程序只需要一种与此文件交互的方法。

另一种方法是序列化/反序列化包含您要存储的数据的对象。

还有其他存储数据的方法,例如 NoSQL 数据库。我个人还没有使用其中之一,但这里列出了其中的一些:http: //nosql-database.org/

也可以使用 XML。

应用程序可以通过多种方式存储其数据

于 2013-02-21T11:27:09.097 回答
2

程序存储数据的方式实际上是没有尽头的。奥托:

  • 自制存档格式:每个游戏公司似乎都有一些自己的(暴雪 MoPaQ,
  • XML 文件:通常用于简单的配置(Apple 的 plist 文件、Windows 应用程序配置、Skype 的用户首选项,...)
  • SQLite数据库:通常用于较大量的个人数据(Firefox:书签、历史等;iOS个人信息数据库等)
  • “在云端”在别人的数据库中(基本上所有的网络应用程序)
  • 纯文本或简单文本格式(Windows .ini/.inf、Java MANIFEST.MF、YAML 等)
  • ...

一个程序可能会使用多种方法,具体取决于它们存储的内容。没有统一的解决方案,也没有适合每项任务的解决方案,因为每个系统都有权衡(人类可读性与打包效率,随机访问与顺序归档等)

于 2013-02-21T11:47:13.177 回答
0

很多程序使用 Sqlite 来存储数据(http://www.sqlite.org)。Sqlite 是一个非常紧凑的跨平台 SQL 数据库。许多程序确实使用文本文件。

于 2013-02-21T11:27:28.067 回答