【问题标题】:Create a new database from an existing one (or just create new table ?)从现有数据库创建一个新数据库(或者只是创建新表?)
【发布时间】:2016-11-15 05:45:38
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android database android-sqlite


    【解决方案1】:

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

    【讨论】:

    • 我并不是说所有应用程序都应该只有一个数据库,只是一个数据库中收藏夹列表的表作为该数据库的一部分才有意义。跨度>
    • 感谢您的回答。因此,正如您所建议的,我将保留一个数据库并简单地添加一个新表。我现在已经创建了我的新表,其中包含我想要保留的所有字段。由于我的 databaseHelper 类被定义为对我的数据库的“只读”访问,是否将其更改为“读写”会使我的主表处于危险之中?此表包含大量信息,任何情况下都不应修改...!谢谢!
    • 如果你的数据库是可写的,那么你可以改变一些东西总是有危险的。但除非您对该表进行写入,否则它不会改变。我们的数据库中有 100 和数千名用户,并且在几年内一直以这种方式成功维护。
    猜你喜欢
    • 1970-01-01
    • 2022-06-16
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    相关资源
    最近更新 更多