我正在为一个大型国际品牌设计一个g +应用程序。我需要创建的实体几乎是图形的形式,因此很多连接节点的多对多关系(弧)可以在两个方向上遍历。我正在网上阅读所有可读的文档,但到目前为止我还没有找到任何特定于ndb设计最佳实践和指南的内容。不幸的是,我在nda之下,并且无法透露应用程序的详细信息,但它几乎可以与科学会议的背景,作业,论文和主题相匹配。
在目前设想的实体列表下方(上下文移位以匹配上述主题):
正如你所看到的,我可以通过任何方向(或从前端的角度来看)访问和遍历图表:
等等,你填写清单。
我想让它变得笔直且坚固,因为它会以很多p.r.启动。并且需要在内容和用户数量方面持续加班。我想从头编写它,因此设计我自己的模型,restful api来读/写这些数据,避免非rel django并保持表示层到最小的模板机制。我需要查看我工作的公司,但我们可能能够使用合适的开源许可证发布部分代码(理想情况下,为ndb模型提供一个安静的服务)。
如果有人能指出我正确的方向,那就太棒了。
谢谢! 托马斯
[编辑:纠正与多对多关系相关的拼写错误]
答案 0 :(得分:1)
在App Engine中实现一对多关系有两种方法。
在实体A内部,存储实体B1,B2,B3的密钥列表。在旧数据库中,您将使用db.Key的ListProperty。在ndb中,你使用KeyProperty,重复= True。
在实体B1,B2,B3内部,将KeyProperty存储到实体A.
如果您使用1:
如果您使用2:
答案 1 :(得分:0)
欢迎任何其他更详细的答案