问题标签 [foreign-collection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
176 浏览

java - 如何加快外国收藏的急切加载?

我有一个用 ORMlite 映射的数据库表,它包含一些数据(18 列),它还包含ForeignCollectionField(eager = true).

问题是从该表中加载所有数据时...... ORMlite 正在为每个项目创建查询,而不是使用连接。这会导致 67124 次查询,并且需要永远加载该表中的所有对象。

然而,这可以在几秒钟内在右连接查询中完成吗?为什么要生成数千个查询?

我怎样才能加快速度?我是否必须编写原始查询然后 RawRowMapper ,这使得使用 ORM 毫无意义..

如何处理在 ormlite 中加载急切的集合?因为queryForAll不是办法..

0 投票
2 回答
60991 浏览

postgresql - PostgreSQL 元素数组,每个元素都是外键

Users我正在尝试为我的应用程序创建一个数据库,我想找到最好的方法是在我的表和表之间创建一对多的关系Items

我知道我可以创建第三个表,ReviewedItems并让列成为Userid 和Itemid,但我想知道是否可以在 中创建列Users,比如说reviewedItems,这是一个包含外键的整数Items数组已User审查。

如果 PostgreSQL 可以做到这一点,请告诉我!如果没有,我会沿着我的第三桌路线走。

0 投票
2 回答
3944 浏览

java - Android OrmLite 外键/外集合

在我最近的 Android 项目中,我使用 OrmLite 来模拟一对多关系以及简单的一对一关系。我注意到,在一对多关系中,子节点在数据库中持有对父节点的外键引用。仍然在加载父对象时,OrmLite 知道要做什么并加载子元素的集合,这当然是所需的行为。

但是,对于简单的一对一关系,似乎需要父对象持有外键列才能实现相同的行为。

所以实际的问题是:当仅在子对象中设置外键时,是否可以让 OrmLite 以一对一的关系加载子对象,因为这是具有一对多关系的标准行为?

这是一些示例代码:

因此,在孩子 1 和 2 中,我需要像这样引用 Parent:

因此,在保存 child2 时,我只需设置

但是为了在查询包括 child1 和 child2 在内的父级时达到相同的行为,我必须以相反的方式保存关系:

这非常不方便,因为我希望 child1/child2 都持有父母的外键或相反。但是混合物似乎有些难看!

任何想法如何实现这一目标?

我在这里搜索了该问题的答案,但找不到。如果是重复的,对不起!

非常感谢!

编辑:

更准确地说:是否可以在我的 child1 表中设置外键,并且在查询 Parent 时仍然能够获取 child1。ORMLite 会自动为 child2 的外部集合执行此操作。我希望 child1 具有相同的行为。但是当我设置

然后进行查询

由于父表没有对 child1 的引用(外键),因此仅获得 child2。只有 child1 具有对父级的引用。

所以:我想让 Ormlite 自动更新父外键列,或者告诉 Ormlite 仍然获取 child1,即使在父级中没有设置外键(这正是 child2 集合的情况)。这有可能吗?或不?

我希望这不会太令人困惑:) 我完全知道在父级中设置外键会更简单。但我真的不喜欢这种方法,因为我最终会得到一些孩子拥有父母的外键,而另一些则没有。

非常感谢

0 投票
0 回答
20 浏览

mysql - MySQL - 存储与另一个表的关系,该表保留可以更改的顺序

呈现给我的问题是存储与有序“步骤”相关的“配置文件”。一个配置文件有许多步骤。显然,通过外键列将这些步骤关联到相应的配置文件是没有问题的。但是,保留步骤的顺序比较棘手,因为可以插入、删除和/或重新排列步骤。我正在寻找的是一种比在步骤上使用某种 order_by 列更简洁的方法,因为例如,在 20 步过程中插入 1 和 2 之间的步骤将涉及所有步骤的多个级联更新2-20。

将配置文件表上的关系存储为外键数组是理想的,但我没有发现任何迹象表明这可以以任何合法的关系方式进行。我想出的最好的方法是将多对一关系存储在步骤表上,并在配置文件上有一列带有字符串化数组,当对订购进行更新时,该列被批量替换。我担心这种“硬编码”非关系方法在步骤表中过于敏感,可能会被数组“忽视”,特别是在有多个数据库环境时。

0 投票
1 回答
20 浏览

mysql - 错误代码:1215。--无法添加外键约束

0 投票
3 回答
39 浏览

django - Django - 来自连接模型的聚合字段值

我的目标似乎很简单:显示外部模型特定字段的总和(聚合)。困难在于当前的设置,请看一下并告诉我是否需要更改或我可以使用当前模型实现目标:

现在,我正在尝试进行一年的总结:

Runner X 已参加 12 场比赛,总距离为 134 公里。

虽然我能够计算这样的比赛数量(views.py)

为了计算我尝试过的距离:

此代码错误指出在views.py - 距离线上

异常类型:NameError 异常值:未定义名称“race_id”

我确信我没有完全理解它是如何工作的。有好心人来澄清一下这个问题吗?

谢谢