我开始使用 Realm 在我的 Android 应用程序中存储对象。这是我要存储的示例:
public class Item implements RealmModel {
String id;
...
}
我有多个显示项目的列表。列表的数量可以不断扩大(用户可以创建尽可能多的列表。
假设用户创建了一个名为“Best”的列表。当我查看从 APIgetItems("Best")
获取的“最佳”列表时,我调用了该列表。List<Items>
我现在必须弄清楚如何存储这个列表。例如,在 SQLite 世界中,我将创建一个新表“custom_list_best”,它只是列表中所有 Item.id 的单个列表。我还会有一个包含所有不同项目的“项目”表。要获得最佳列表中的项目,我只需对最佳和项目表进行连接查询。
在 Realm 世界中,我试图弄清楚 Realm 是如何工作的,以及构建模型的最佳方式是什么。
我最初认为我可以创建一个名为CustomList
:
public class CustomList implements RealmModel {
String listId;
RealmList<Item> items;
}
然后我会存储一个RealmList<CustomList>
. 但唯一的问题是我还希望能够查询所有项目。所以我还需要将 a 存储RealmList<Item>
在 Realm 中。在这种情况下,Realm 是如何工作的?如果我存储一个单独的RealmList<Item>
然后存储每个RealmList<CustomList>
它不会重复数据吗?
相反,我必须通过这样做来手动处理这个问题:
public class CustomList implements RealmModel {
String listId;
List<String> itemIds;
}
然后Item.class
从上面的对象中查询在 itemIds 中有 itemId 的对象?