3

我在 Android 中使用 Greendao 进行数据库映射。到目前为止,一切都很好。

但现在我有以下问题:

我有一个集群和叶对象。一个簇包含许多叶子对象。如果一个集群被缩放,它可以分成更多的集群和更多的叶子。这不是严格的树关系,更多的是一个大集群有很多叶子,但一个小集群可以有这个叶子的一个子集。

基本上一个集群有很多叶子,但叶子也位于多个集群中,因为叶子的 id 是唯一的,并且与集群的关系保存在叶子中,叶子只能在一个集群中,对吧?

greendao 主页指出多对多关系是可能的,但我怎么不明白如何为这种关系建模。

是否可以对这种关系进行建模,或者数据结构对 GreenDao 来说是个问题吗?

4

1 回答 1

4

让我们从文档中的引用开始:

虽然 greenDAO 目前不直接支持 n:m 关系,但您可以将连接表建模为单独的实体。在实践中,您经常拥有带有附加属性的“关系实体”,因此您可能无论如何都希望这样做。在未来的版本中,greenDAO 可能会引入对 n:m 关系的直接支持。

因此,在您的情况下,您必须建模一个实体,即在 Cluster 和 Leaf 之间。我们称这个实体为 ClusterLeaf。为了有效地查询集群的叶子,我建议使用原始查询,因为 QueryBuilder 还不支持连接。

于 2013-02-12T16:40:55.017 回答