Android设备的SQLite表设计

Android设备的SQLite表设计,android,sql,sqlite,android-sqlite,Android,Sql,Sqlite,Android Sqlite,我很好奇在我的案例中是否需要m:m关系中的关系表。 结构如下所示: 带有字段的表记录:id、名称、标记作为字符串 带有字段的表标记:id、标记名。正如你所见,这很简单 一个记录可以包含多个标记。另一方面,一个标签可能属于少数记录 该案例正在添加/删除/修改记录。那么,我真的需要一些带有tag\u id和record\u id的“中间”表吗?因为标签表很小。是否只在表侧存储关系会更好 我假设Tags表中可能有50k到150k条记录。 您认为这种解决方案的性能如何?分贝大小将更大-这是众所周知的事实

我很好奇在我的案例中是否需要m:m关系中的关系表。 结构如下所示:

带有字段的表记录:id、名称、标记作为字符串

带有字段的表标记:id、标记名。正如你所见,这很简单

一个记录可以包含多个标记。另一方面,一个标签可能属于少数记录

该案例正在添加/删除/修改记录。那么,我真的需要一些带有tag\u id和record\u id的“中间”表吗?因为标签表很小。是否只在表侧存储关系会更好

我假设Tags表中可能有50k到150k条记录。 您认为这种解决方案的性能如何?分贝大小将更大-这是众所周知的事实。
DB是Android 8+设备上的SQLite。

我始终建议您在处理与数据库的多对多关系时使用中间表。它将防止在其他表中发生数据重复,这绝对是您应该优先考虑的事情,因为您的数据库中似乎有很多数据


如果您还没有了解它,请仔细阅读什么用例?Android数据库并不是用来存储过多数据的

将其存储在外部并让android设备执行SQL查询可能更有意义


就标签/记录的外键而言,它取决于用例。如果我理解正确,您可以在记录中使用tagID作为外键,但这取决于用例。

用户将添加带有一定数量标记的记录。不同记录中的标记可能相同。然后我将需要例如检查所选标记被使用了多少次。在这个项目中,我没有机会在外部存储数据库!我听说了。但阅读文章和观看视频绝对是个好主意