如何在房间数据库中为我的 TODO 应用程序定义和使用标签系统

How to define and use a tag system for my TODO app in room database

我有一个简单的 TODO 应用程序,每个 TODO 都存储在房间数据库中。但我想为这些 TODO 添加标签,以便每个 TODO 可以有 0 个或更多标签,并且每个标签都是一个简单的字符串。所以问题是:这种情况的最佳解决方案是什么?如何为每个TODO存储这组标签?

你想要many-many关系。这需要在 TAG table 和 TODO table 之外使用第三个 table。这样的 table 有两列,一列引用 TAG table,另一列引用 TODO table.

主键应该是由两列组成的复合主键(因此 TODO/TAG 组合必须是唯一的,即您不希望 TODO 两次具有相同的标签)。

这个答案用 SQLite 术语涵盖了这个

这个答案从 Room 的角度涵盖了这个 Relationship many to many between objects not working for me in Android Room