2012-03-21 101 views
0

我正在尝试在GAE/J上创建一个简单的应用程序。数据模型由一个notes的列表组成,每个都有几个tags与Siena非规范化数据建模

在关系的世界,这将是一个多到许多 - 因为每个note可以有多个tags,每tag可以“属于”几个notes。但是,这并不适合GAE数据存储环境。所以,我正在考虑保存每个note,其列表tags以及。如果索引正确,则标签搜索也应该很快。

我的问题:如何使用锡耶纳建模?文档很少,我看到了这些例子,但感到困惑。

回答

1

锡耶纳文档是作为疏林我没有时间进行这项工作了......我现在正忙着在其他项目上,如果有人想促进和维护锡耶纳,他/她的欢迎;)

考虑到你的问题,是的,你应该使用由锡耶纳管理并在GAE工作的简单列表(又名属性列表)。

添加一个字段,如:(无注释)

List<String> tags 

它应该工作!

+0

如果关于文档的评论听起来像一个咆哮,我很抱歉。我不是故意要冒犯!现在,如果我的标签本身就是一个模型,而不仅仅是一个字符串呢?我可以做'列出标签'吗?我阅读了关于嵌入的内容,并认为我应该使用'@ Embedded'注释。我的理解是,如果你不想'JOIN'被执行(我在我的问题中描述的场景),那么应该使用'@ Embedded'。这种理解是否正确? – curioustechizen 2012-03-22 03:20:16

+1

别担心,我不会冒犯:D只是我很伤心地意识到这一点,并且不能像去年那样在锡耶纳工作,因为我正在进行其他项目......关于标签,没有你不能使用列表,但列表作为GAE只管理列表属性的基本类型。 @Embedded也是一个解决方案,但GAE有限制您可以在实体组(嵌入式实体)中执行更新的次数。你不能修改这个组超过1次/秒。因此,我建议您使用列表并将您的标签密钥写为字符串,以便您可以非常轻松地找到相应的标签。 – mandubian 2012-03-22 09:50:48

+0

好的 - 我现在明白了。我可能会坚持使用简单的'字符串'作为标签(这是什么标签呢!)。我仍然需要真正尝试“查找带有如此标记的笔记”。我会在这里更新我的发现。 – curioustechizen 2012-03-22 14:16:15