android - 从现有数据库创建一个新数据库(或者只是创建新表?)

标签 android database android-sqlite

我的应用程序正在与数据库(只读,存储在 Assets 文件中)通信,用户可以显示该数据库中的内容列表。例如,可以在 ListView 中显示此数据库中的数千个元素,用户可以单击任何元素并获取更多信息。

我想添加一个新功能,允许用户创建“收藏夹”列表。因此,每次用户单击数据库中的元素时,他都可以单击“添加到收藏夹”按钮,然后从主菜单中将有一个“收藏夹”按钮打开一个仅包含用户决定的元素的 ListView 首先添加。

我已经有一个扩展 SQLiteOpenHelper 的 DatabaseHelper 类,以及一个指定与我的第一个表的交互的 DatabaseAdapter 类。

据我所知,我可以保留一个数据库(然后重新使用我的 DatabaseHelper 类)并创建一个新的 DatabaseAdapter2 类来定义新表的方法(添加新元素、删除元素等)。 ) 以及我的表的字段。这样对吗?我不太确定,因为我的 DatabaseHelper 被定义为“只读”以保护我的主表免受任何修改,但第二个表必须处于“写入+读取”状态,所以也许有第二个 databaseHelper 会更好? 这可能是一个微不足道的问题,但我找不到太多关于从现有表/数据库创建新表/数据库的信息。

最佳答案

按照您描述应用程序的方式,我会考虑将其全部作为一个数据库,即使这需要您打开 mainTable 进行写入。如果您从收藏夹数据库中读取数据,然后从您的 mainTable 数据库中提取后续数据,这将比您从一个数据库的两个表中提取复杂查询要慢得多。

关于android - 从现有数据库创建一个新数据库(或者只是创建新表?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15915896/

相关文章:

android - 获取隐式 Intent 打开的应用程序

java - 我做错了什么?安卓JUnit

sql - 聚簇索引必须是唯一的吗?

php - 从 PHP 数组制作 HTML 列表?

删除一张表的 Android SQLite 新 DB 版本

android - MVC中Activity类的作用是什么?

android - 是否可以使用 webrtc 构建原生的 android 到 android 视频聊天应用程序?

mysql - 增加两个网站共享一个数据库的加载时间

drag-and-drop - 在 SQLite 数据库中使用拖放排序 ListView

android - 如何从 Android 中的 SQLite 中获取记录