我正在创建一个小问题应用程序,需要一些帮助来设计我的模型关系。这个问题可能会相当复杂,但我会尽量简洁。数据存储设计查询
琐碎问题将全部成为特定类别的一部分。类别可能是另一类别中的类别。如果创建/删除了一个琐事问题,我需要确保我还更新了一个计数器。通过这种方式,我可以看到每个类别中有多少个问题,并将其显示给用户。如果某个类别具有“子”类别,则需要显示所有子类别的累计计数器。准确的符合是相当重要的,但不是任务关键。我不介意使用分片计数器。我的问题是,我应该如何设计,以便它将采用GAE非规范化并保持优化?
我在想有一个Category类,每个ListProperty都会代表祖先树。它将按顺序包含树中每个父实体的键。但是,我是否应该在构造实体时指定父项,还是在这种情况下不需要?我想我可能不得不在交易中运行柜台更新,这就是为什么我正在考虑亲子关系。
或者也许有更优化的设计我的关系的方式,仍然可以让我保持每个类别中所有问题的相当准确的计数器。预先感谢您的帮助。
稍微偏离主题,但我注意到,你将使用的应用程序引擎的数据存储。你有一些应用程序引擎和创建持久模型的经验吗?如果不是,我会指出App Engine的行为与许多其他Persisten模型有些不同。我发现使用App Engine时遇到了一些约束,而不像Hibernate(在Java世界中)那样更通用。例如查询属性路径,例如你无法查询triviaCard.someCategory.question。如果使用GAE – 2010-01-09 19:24:03
,我只是想要将这些约束条件应用到您的设计中。我不确定这是否适用于您的评论,但我没有使用Java API。 – BMac 2010-01-09 19:34:44