【问题标题】:SQLite Implementation AndroidSQLite 实现 Android
【发布时间】:2014-08-06 08:11:02
【问题描述】:

在 android 中实现 SQLite 数据库时 在我的应用程序中,我有 5 个不同的数据库表。 我找到了两种实现方式

1) 为每个表和各自的 SQLiteOpenHelper 实现创建不同的数据库。

2) 在其中创建 1 个数据库和仅 1 个 SQLiteOpenHelper 实现,创建所有必需的表

我对上述方法有以下疑问。

a) SQLiteDatabase db = this.getReadableDatabase(); 将获取 RAM 中的数据库以对其进行操作 在情况1)我们为每个表都有一个单独的数据库,因此它将在内存中加载相应的数据库? 在案例 2)我们有一个包含所有表的数据库,所以所有表都将进入 RAM 中?

b) 情况 2 如果一个表中的一个特性更新而第二个表和第一个特性中的另一个特性完成了它的任务并在数据库上调用 close 那么仍在处理中的第二个特性会发生什么?会有例外吗?

【问题讨论】:

  • 管理多个数据库需要处理所有数据库(打开、关闭等)。 RAM 中的数据库数据量是相同的。但是你会有更多的数据库对象
  • @1) 哈哈哈哈为了什么?你将如何使用 join 语句? ... @a) 谁在乎 @b) 使用 ContentProvider,CP 内只有一个 db 类的实例,根本不会在 db 实例上调用 close

标签: android database multithreading sqlite


【解决方案1】:

这主要是一个设计问题。

如果您的表完全一致,它们应该存储在同一个数据库中。如果它们是独立的、完全不相关的、没有共同目的或用例的,那么它们就是数据库。

例如:UsersAccountsAccessRights 表应该与 Users 拥有被授予的 Accounts 相同的数据库 >访问权限

在多个表(模型)之间保持数据一致实际上是数据库的目的。

【讨论】:

    猜你喜欢
    • 2018-09-17
    • 2015-03-29
    • 1970-01-01
    • 2016-03-23
    • 2017-12-10
    • 2020-09-14
    • 2011-06-02
    • 2016-07-16
    • 1970-01-01
    相关资源
    最近更新 更多