多对多关系 GAE NDB 需要父母还是子女?

Posted

技术标签:

【中文标题】多对多关系 GAE NDB 需要父母还是子女?【英文标题】:Many-to-Many Relationship GAE NDB Need Parent or Child? 【发布时间】:2013-10-12 01:36:30 【问题描述】:

我正在尝试阅读和复制https://developers.google.com/appengine/articles/modeling 中的多对多关系的代码。我注意到的一件事是 groupuser 似乎不是彼此的父母或孩子,或者它没有这样说。

我的问题涉及公司实体和用户实体。我自然会认为,一个公司可能属于一个用户,也可能不属于一个用户,一个用户也可能属于一个公司,也可能不属于一个公司。

所以,问题是:在多对多关系中,一个实体是否需要成为另一个实体的父级或子级?这有关系吗?

我想我只需要验证告诉我,“是”既不是彼此的父母也不是孩子,并且“是”你需要遵循数据库系统理论,而不是关系模型。只是每个实体的列表,例如包含彼此的每个实体的 JsonProperty,或类似的东西。 :)

【问题讨论】:

【参考方案1】:

父子关系用于建立实体组,在事务中需要。它们与实体之间的正常(一对多或多对多)关系无关。

不,建立实体关系不需要父子关系。

是的,要在实体之间建立“关系”,您只需将一个实体的密钥(或 ID)存储到另一个实体中。我将“关系”放在引号中,因为这实际上只是到另一个实体的链接,而不是由数据库管理的关系(例如 SQL 数据库中的关系)。

【讨论】:

以上是关于多对多关系 GAE NDB 需要父母还是子女?的主要内容,如果未能解决你的问题,请参考以下文章

如何更新多对多关系中的现有对象(.Net 5)

同一张表之间多对多的级联删除

如何在 Google App Engine 中计算多对多关系的双方

一对多还是多对多?

与Hibernate的多对多关系的循环序列化

(转)Hibernate框架基础——多对多关联关系映射