tsi*_*sil 6 google-app-engine app-engine-ndb
我有两个模型:会员和活动.会员可以参加许多活动,在一个活动中,有很多参与者.我想是这样的:
class Members(ndb.model):
event = ndb.KeyProperty(repeated=True)
class Events(ndb.model):
member = ndb.KeyProperty(repeated=True)
Run Code Online (Sandbox Code Playgroud)
做多对多关系的最佳方式是什么?
Mic*_*ael 13
我认为在这种情况下,您希望在一个模型中指向另一个模型的数组/键列表.由于数组/列表的长度有限制(现在最大值为5000),您可能希望成员模型指向事件模型(我假设成员可能不会参加很多事件(超过5000),但在一个活动中有很多(超过5000)成员).现在,如果您需要与会者列表,则只需在成员模型中查询事件键.如果您只想要人头数,则可以执行仅密钥查询,这样可以节省成本.
如果出于某种原因,您需要使两个案例都超过5000,那么您可以创建包含成员密钥和事件密钥的另一个(与会者)模型,然后为每个事件为每个访客创建此与会者模型.要获取访客列表,只需查询此模型以查找特定事件,如果需要成员事件列表,请执行相反操作.这并不比上面的工作多得多,所以即使5000不是限制因素,你可能会这样做.
| 归档时间: |
|
| 查看次数: |
2570 次 |
| 最近记录: |