如何在保存应用程序信息(设置,数据等)时思考?

问题描述:

一直在想这个问题:假设我有一个应用程序,您可以在其中添加和使用提醒。如何在保存应用程序信息(设置,数据等)时思考?

什么是最好的方式来存储这个?在过去,我一直使用文本文件,但如果以后我想在文本文件中为每个提醒添加另一个“字段”,它可能会出现问题。假设我为循环提醒添加了一项功能。

什么是最不稳定的方式?文本? XML? JSON? SQLite的?

+1

所有这些方法的工作,所有这些方法都有不同的优点和缺点。如果这将是一个很好的Q&A问题,您将需要提供更多细节。没有细节,这将被关闭,因为每个人都会推荐他们最喜欢的保存信息的方式。 – nvoigt 2015-02-08 14:10:10

+0

我同意w/@nvoigt,你确定你的意思是最不稳定的方式吗? – kenny 2015-02-08 14:14:37

+0

可能**基于意见**。根据专家的经验,许多优秀的问题都会产生一定程度的意见,但对这个问题的回答往往基于意见,而不是事实,参考或具体专业知识。 – MickyD 2015-02-08 16:49:28

使用数据库。添加另一个字段就像向表中添加另一列一样简单。 MySQL是一种可靠的查询语言,易于为初学者选择。当我开始时,我看到(并非常喜欢)本教程系列: https://www.youtube.com/watch?v=6pbxQQG25Jw

如果您曾经做过需要大量可伸缩性的东西,那么您可能需要考虑PostgreSQL。

随着数据模型变得越来越复杂,SQLite将成为更好的选择。升级过程(更改,添加和删除表)是一项工作,您的代码甚至需要在查询中引用新字段。

XML和JSON的优势在于现在大多数平台都具有内置于标准库中的解析器,所以每次更改数据模型时都不必修正解析器(就像使用纯文本一样)。 XML可以验证您的模型,并让您知道该文件是否符合您的模型。 JSON实际上只是一个序列化协议,并没有提供任何模型验证方面的内容,这使得它在纯文本选项(IMO)中是最灵活的。

在更新您的模型方面,您的代码应该在文件中读取并允许新字段丢失或为空。如果该字段是强制性的,那么您应该提供一个默认值,然后将您的模型写回到该文件中,以便下次使用。对于SQLite来说,这个过程大致相同,但是在升级模型的过程中需要做的更多一些。