【发布时间】:2011-09-25 09:37:08
【问题描述】:
我正在编写一个与 Web API 通信的应用程序,它以 JSON 响应。目前,我正在使用 gson 将 JSON 对象转换为 Java 对象(顺便说一句,这很棒)。
现在,我想将其中一些对象存储在 SQLite 数据库中。但是,它们有许多永远不会在查询中使用的属性(即,我不会成为 ORDERing、WHEREing 或任何类似的属性),所以我觉得没有必要为所有人创建列其中。我想做的是:
- 只有在查询数据库时将使用的基本数据列
- 有一个
TEXT或BLOB列(您推荐哪一个?)来存储实际的 JSON,这样我就可以从中重新创建我的 Java 对象并访问所有数据。
这既可以让我的生活更轻松,也可以简化我的代码(在处理来自 API 的数据与来自数据库的数据时,我不必编写非常不同的代码)。
不过,虽然我看不出有什么不好的地方,但感觉有点可疑。
如果我使用这种技术,你认为我会遇到什么样的麻烦?
【问题讨论】:
-
从技术上讲,这将违反规范化规则 - 字段的值取决于其他字段,但规范化规则是建议,而不是刻在石头上的你必须这样做法律。
-
在我的应用程序中,我将 JSON 数据存储在
TEXT字段中,但这些数据不值得拥有自己的表。 -
@Marc 我喜欢你在“违反规范化规则”中翻译“可疑”的方式:)(是的,我知道它们是什么)
-
@Felix,你问这个问题已经有一段时间了。您是否继续在数据库中使用 JSON?我正在考虑做同样的事情,但正如你所说,感觉很可疑。
标签: android json sqlite data-storage