我在Android中使用Greendao进行数据库映射。到目前为止一切都很好。
但现在我有以下问题:
我有一个簇和叶子对象。簇包含许多叶对象。如果一个簇被缩放,它可以分裂成更多的簇和更多的叶子。这不是一个严格的树关系,更重要的是一个大集群有很多叶子,但一个小集群可以有这些叶子的子集。
基本上,一个簇有很多叶子,但叶子也在多个簇中,因为叶子的id是唯一的,并且与簇的关系保存在叶子中,所以叶子只能在一个簇中对吧?
绿道主页上说,很多对很多关系都是可能的,但我怎么也不知道如何建立这种关系。
有可能建立这样的关系模型吗?或者数据结构对GreenDao来说是个问题吗?
让我们从文档中的一句话开始:
虽然greenDAO目前还不直接支持n:m关系,但您可以将联接表建模为单独的实体。在实践中,你经常具有具有附加属性的"关系实体",因此您可能需要无论如何都要这么做。在未来的版本中,greenDAO可能会直接引入支持n:m关系。
因此,在您的情况下,您必须对一个实体进行建模,该实体位于Cluster和Leaf之间。让我们将此实体称为ClusterLeaf。为了有效地查询集群的叶,我建议使用原始查询,因为QueryBuilder还不支持联接。