gpt4 book ai didi

mysql - 我是否需要在 Google App Engine 中利用 JDO 的父子关系?

转载 作者:行者123 更新时间:2023-11-29 12:42:58 24 4
gpt4 key购买 nike

我希望我的应用程序尽可能便携,这样如果 Google Cloud Datastore 不是最佳解决方案,那么我可以快速轻松地切换到 MySQL,但是互联网想要的方式存在一些固有的差异我为这两个范例定义我的模型。

对于 MySQL,我的模型只有一个用于引用相关模型 ID 的字段。然而,JDO 使我能够轻松引用实际模型本身。

即:我认为我的 MySql 模型看起来像这样:

class Parent{
private String key;
private String childId;
}

但是 JDO 会是:

class Parent{
private String key;
private Child child;
}

这种差异导致我决定使用第一种方法,并担心自己查询实际的 Child 对象,但我想知道我是否只是为了一些可能重要或不重要的事情而让自己变得困难。我计划做的事情有什么具体原因是错误的吗?

最佳答案

我认为 App Engine JDO 文档中针对这些情况的术语是,将 key 存储在属性上形成“无主”关系,而执行其他操作则形成“有主”关系。使用数据存储区,拥有的关系形成数据存储区实体组,这就像将组中的所有实体存储为一条记录。

我不喜欢在没有明确希望能够以事务方式对组的所有成员进行操作的情况下形成实体组,因为分组会影响并发更新。如果我只是关联两个数据对象,以便可以跟踪从一个数据对象到另一个数据对象的引用,并且不需要事务性,那么我宁愿花时间跟踪对第二个实体的引用,而不是创建不必要的实体组并希望一切顺利。换句话说,我更喜欢无主关系(存储 key )而不是有主关系,除非我知道我需要事务性。

这个概念在关系数据库中没有对应的概念。 [感谢 Billy Frost 的更正。] 因此您可以选择其中任何一个并保留可移植性。

https://developers.google.com/appengine/docs/java/datastore/jdo/relationships

关于mysql - 我是否需要在 Google App Engine 中利用 JDO 的父子关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25859693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com