0

我一直在为我的 Android 翻译应用程序实现 SQLite 数据存储。情况是:应用程序从服务器接收 JSON 格式的翻译,对其进行解析并构建对象树(平均 50 到 100 个对象);现在我需要将它保存到 SQLite DB 中。我问过我的老师,他建议不要保存整个 JSON 响应,而是制作一个更复杂的数据库结构。我已经这样做了,但我担心那些 50-100 个数据库查询,这些查询已完成(以及分别创建 50-100 行)以仅保存一篇字典文章。

现在我想知道在 DB 中存储复杂对象树的最佳方法是什么,或者是否可以进行多达 100 个 DB 查询。

不过,也许更好的方法是将 JSON 响应存储在 DB 中?我需要对字典文章的唯一操作是搜索它们,不需要修改。

4

2 回答 2

2

最好有一个适当的数据库结构和规范化的数据。这将使您能够更有效地查询数据。此外,如果其他人曾经开发过您的代码,他们将更容易理解。

您应该在一次事务中完成所有更新,一次保存 100 条记录就可以了。您可以使用类似于该结构的结构:

    SQLiteDatabase db = sqlHelper.getWritableDatabase(); // this returns a database
    db.beginTransaction();

    try {
        // all your updates
        db.setTransactionSuccessful();
    } finally {
      db.endTransaction();
    }

    db.close();
于 2013-11-04T20:15:51.273 回答
1

如果你正确使用交易,你会没事的。在单个事务中执行所有写入,并在完成时提交事务。

于 2013-11-04T20:12:18.103 回答