什么更好?几个较小的数据库或一个大的

时间:2017-02-12 20:29:12

标签: android sqlite database-design

我正在申请学习外语单词,所以我将这些单词存储在我的数据库中。这些单词分离例如为 3级的难度。每个级别都由一些单词组成,这些组引入了SQLite数据库的TABLES。我使用 SQLiteOpenHelper 作为应用程序和数据库之间的通信。

现在我的问题。什么是更好的?

  • 制作 3个较小的数据库,每个数据库用于每个级别并使用自己的数据库 SQLiteOpenHelper,所以共有3个dbs,有3个开放助手。
  • 制作 1个大型数据库,这将是3个级别,这意味着 很多TABLES,但只有一个SQLiteOpenHelper。

感谢您的任何建议或意见。

2 个答案:

答案 0 :(得分:4)

我建议使用1个大型数据库(DB)。

你不应该担心制作大型数据库,发明数据库是为了存储大量数据(甚至是许多表)。创建和维护一个DB要比多个DB容易得多,并且使用一个DB可以更清楚地编写代码。

我不知道你的程序,但我会更进一步:如果你存储相同的信息,我宁愿将所有单词存储在同一个表中,并添加一列来显示级别,另一个用于显示他们所属的群体。

SQL的主要思想是,您并不关心数据库需要多少空间以及查找查询结果需要多长时间,因为DataBase Managent Systems(在您的情况下是SQLiteOpenHelper和SQLite)考虑到空间和时间,它们非常有效。相反,您应该专注于设计一个可以轻松扩展的系统(例如,如果您想要将另一列添加到包含单词的表中(例如,您希望存储有关单词的新信息),或者想要添加新的级别或组后期发展)并且结构清晰。您可能会通过SQL的SELECT命令将组和级别分开几毫秒,但您的数据库将更加灵活 - 您可以添加级别和组,并轻松添加有关单词的更多信息。设计好数据库的关键:你应该将不同类型的数据存储在同一个表中的不同表和相同类型的数据中......

答案 1 :(得分:2)

您在评论中提到的错误几乎肯定是您的应用程序代码中的错误。没有理由让具有多个数据库的应用程序遇到这种错误。

那就是说,我对你原来问题的回答是,它是客观的"更好"使用单个数据库。

它更好,因为你将需要更少的代码来维护,在给定的情况下不可能尝试访问错误的数据库,并且代码将更加惯用 - 即使用多个数据库没有任何好处,因此,如果您要使用多个数据库,那么阅读代码的任何人都会花费大量时间来弄清楚您为什么要这样做。