程序用什么来存储数据? (他们使用已知的数据库系统吗?)

时间:2013-02-21 11:20:08

标签: database storage

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

3 个答案:

答案 0 :(得分:1)

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

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

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

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

也可以使用XML。

应用程序可以无休止地存储其数据

答案 1 :(得分:1)

程序存储数据的方式确实没有尽头。 OTOH:

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

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

答案 2 :(得分:0)

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