使用app-engine数据存储设置父/子密钥关系

时间:2012-06-26 07:46:34

标签: database google-app-engine database-design google-cloud-datastore

我正在实施一个简单的费用报告申请。该申请将使用GAE。在我的应用程序中,我有几个实体(类),如年,月,日,费用,帐户等。图片如下:用户可以创建一个帐户,然后开始用简单的表单声明费用。费用存储在GAE Datasotre中。每年都有几个月,每个月有几天,每天都有宣布的费用。问题是我不知道如何在GAE的非关系数据库中安排这些实体。我从Google Developers网站上阅读了几篇教程和文章,但仍然不了解父/子关系和实体组的概念。任何人都可以帮助学习如何设计关系的教程,视频,文章或书籍,并将您的实体存储在非关系数据库(如GAE数据存储)中。提前致谢。我忘了提到我想使用GAE低级数据存储。

2 个答案:

答案 0 :(得分:1)

如果您使用的是java,我建议使用objectify。至少对我来说,它比JPA容易得多。

您是通过读写来支付的,所以如果您可以将所有数据放入1个月的一个月,那么我就不会有一个单独的实体。无论如何,我不明白你的要求,比如为什么年份必须是一个实体,而且可以只是你过滤的财产。我实际上会想到只有一个带有Year和Month属性的Day实体来过滤。

http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Relationships

答案 1 :(得分:0)

在MongoDb中你会“嵌入”文件。我不知道GAE是否像MongoDB一样进化 - 我怀疑不是。如果您在此阶段遇到文档问题,也许您应该查看另一个更好的文档NOSQL数据库。无论如何我都会看一下MongoDB网站,所以如果你有一个SQL背景,你可以看到两种文化之间的术语映射。当然,任何NOSQL数据库都是非交易性的,因此当应用程序开发以跟踪费用支付时,以后可能会出现一些不可克服的问题。