绿道多对多关系

时间:2013-02-12 15:48:51

标签: android sqlite orm greendao

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

但现在我遇到了以下问题:

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

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

greendao主页说很多关系是可能的,但我怎么也不能理解如何模拟这种关系。

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

1 个答案:

答案 0 :(得分:4)

让我们从docs

的引用开始
  

虽然greenDA目前不支持n:m关系,但是   可以将连接表建模为单独的实体。在实践中,你经常   拥有“关系实体”和其他属性,所以你可能想要   无论如何要这样做。在未来的版本中,greenDAO可能会直接引入   支持n:m关系。

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