问题标签 [many-to-many]

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 投票
2 回答
11281 浏览

entity-framework - 使用实体框架将现有实体添加到新创建实体的集合中

我正在使用实体框架来创建新订单。该订单包含联系人集合,多对多关系。我想在创建订单时添加对现有联系人的引用。订购和联系实体对象。

当我去附加,这个异常被抛出:

“当与此相关端关联的源对象处于添加、删除或分离状态时,附加不是有效操作。使用 NoTracking 合并选项加载的对象始终是分离的。”

我知道我可能错过了一步,或者没有完全理解实体框架如何处理多对多关系。

0 投票
3 回答
11009 浏览

hibernate - 休眠条件 - 在 n:m 关系中查询表

我正在尝试为以下场景构建一个带有休眠条件的查询:

  • 两个实体:指标和报告(每个都有自己的表格、类等)
  • 一个指标可用于零到多个报告
  • 报告使用零到多个指标
  • 因此,我有一个交集表来存储关系
  • 关系在两个类及其休眠映射中定义
  • 在 UI 中,用户可以选择一个或多个报告(除其他外),我想在数据库中查询这些报告中使用的指标

我尝试了以下方法:

但我得到的只是一个奇怪的 SQL 语句

然后是 JDBC 异常(缺少参数)

有任何想法吗?谢谢。

注意:我已经研究了Querying ManyToManyrelationship with Hibernate Criteria,但接受的解决方案是构建自定义 sql-string ...

0 投票
4 回答
22293 浏览

sql-server-2005 - 多对多关系中的查询示例

哇,很难找到这个话题的简单解释。简单的多对多关系。

三个表,tableA、tableB 和一个联结 tableA_B。

我知道如何用键和所有东西建立关系,但是当执行 INSERT、UPDATE 和 DELETE 查询时我有点困惑......

基本上,我正在寻找的是一个示例,它显示:

  1. 如何根据TableB中的ID获取TableA中的所有记录

  2. 如何根据TableA中的ID获取TableB中的所有记录

3 如何在 TableA 或 TableB 中插入,然后在联结表中进行适当的插入以建立连接..

我不是在寻找特定项目的解决方案,只是一些可以应用的一般示例。也许你周围有东西?

0 投票
2 回答
875 浏览

django - 保存具有多对多关系的对象

我有模型(简化示例):

我想将任务分配给某些人,并添加属于该组的所有人员,以及稍后添加其他人(或从任务中删除特定人员)。显然不会执行保存,因为对象在要添加多对多关系对象时没有id。如何处理这种情况?我尝试在将人员添加到任务之前保存,然后再次保存,但没有奏效。

问候
克里斯

0 投票
2 回答
260 浏览

sql-server - 如何确保在多对多关系中删除冗余数据

我正在尝试确保在没有更多使用级联删除的引用时自动删除某些数据。我将使用基于 Stack Overflow的假数据库进行解释。

我有一张Post桌子。每个帖子都有零到多个标签。

所以它应该看起来像:

发布 <-> PostTags <-> 标签

例如。

帖子 1 有标签“A”、“B”、“C” 帖子 2 有标签“C”、“D”。

现在,我正在做的是,当我删除帖子 2 的所有标签(例如DELETE FROM PostTags WHERE PostId = 2)时,我希望标签 'D' 也被删除,因为如果没有其他人引用它。我认为级联删除会处理这个问题,但当然只有当你从Tag->PostTagsor级联下来时Post->PostTags

我不知道如何处理这个。

恐怕人们会建议使用触发器:((系统的额外复杂性)。

想法?

注意:数据库是 MS Sql2008。

0 投票
2 回答
2049 浏览

linq-to-sql - Linq2Sql 多对多关系和插入新对象的问题

我正在尝试做一个简单的 linq 2 sql 多对多,插入一些数据,操作。

这是代表多对多的股票 Northwind 模型:

替代文字 http://www.iaingalloway.com/images/linq-detail.jpg

现在我要做的是插入一个新订单,如果产品不存在,那么在同一交易中同时插入该产品。我得到的错误是:

所以这是我的(伪)代码:

我假设我需要先保存产品,然后再尝试保存订单?我很混乱 :(

0 投票
1 回答
352 浏览

nhibernate - 从多对多参考表中删除项目?

我有两个表“组”和“客户”,当然还有两个实体“组”和“客户”。我有另一个表,它同时引用了“CustomerGroupMember”表。

我使用 CustomerGroupMember 表进行多对多映射。

客户.hbm.xml

组.hbm.xml

我还没有为“CustomerGroupMember”表创建实体和映射。

我的问题是如何从 CustomerGroupMember 表中删除 CustomerGroupMember?我需要为 CustomerGroupMember 创建一个实体才能删除 CustomerGroupMember 还是有其他方法?

非常感谢你。

0 投票
9 回答
8324 浏览

sql - 基本的多对多 sql 选择查询

我认为这应该很容易,但它在逃避我。我在帐户和帐户组之间建立了多对多的关系。一个帐户可以在零个或多个组中,所以我使用标准连接表。

我正在使用 MS Access,FWIW。此外,这适用于低带宽情况,因此代码优化不如简单/可读性重要。

我使用 php 作为表示层,所以 Access 的基本结果很好。

至于如何处理多结果情况,我实际上有两件事我正在尝试构建。第一个在一个列中列出了所有组,因此:

第二个是主从列表:

对于主从细节,我的计划只是从数据库中获得一个大的结果集,并根据需要在 php 中调整它。由于无论如何都会在 php 中进行一些重要的后处理,也许我应该只做三个单独的查询并在那里进行连接。(因为我更喜欢那种语言。)

0 投票
1 回答
1202 浏览

ruby-on-rails - 试图删除 rails 中的 has_and_belongs_to_many 关系

所以我昨天才开始我的第一个 Rails 项目。我的应用程序中有两个多对多(has_and_belongs_to_many)关系。我在模型游戏和团队之间有一个,另一个在模型统计数据和结果之间。通过自己通过迁移创建连接表,这一切都很好。

然后我决定我不想让统计/结果关系是多对多的,而是多对多的关系,所以我运行了以下迁移并将关系切换到 has_many 和 belongs_to:

然后,当我这样做时,不仅新的一对多关系不起作用,因为我在调用 Result.find(0).stat 时收到 NoMethodError,而且现在我之前与游戏和团队的工作多对多关系现在也坏了。我以前可以调用 Game.fine(0).teams 来查找并查看结果,现在我也得到了 NoMethodError。有什么想法吗?我很迷茫,任何帮助都会很棒。

0 投票
8 回答
2423 浏览

sql - 表示单个 SQL 表中记录之间的多对多关系的最佳方式是什么?

我有一个这样的 SQL 表:

更新:我正在更改示例表,因为原始数据(州、城市、学校)的现有分层性质掩盖了项目之间需要简单关系的事实。

我想定义这些实体之间的双向关系,以便查看一个实体的用户可以看到所有相关实体的列表。

关系由最终用户定义。

在数据库中表示这些关系并随后查询和更新它们的最佳方式是什么?

我看到的一种方式...

我的直觉是这样的关系表:

既然如此,给定提供的 entity_id 为 4,如何获取所有相关记录,即 1 和 5?

同样, entity_id = 1 的查询应返回 2、3、4 和 5。

感谢您抽出宝贵时间,如果我能澄清这个问题,请告诉我。