问题标签 [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 投票
1 回答
409 浏览

oop - dbml 中的外部参照关系

所以我有一个这样的数据库模式:

用户用户
ID

RoleUserXRef
RoleUserId
RoleId
UserId

角色
RoleId
名称

在 User & RoleUserXRef 和 RoleUserXRef & Role 之间定义了外键。基本上,我在用户和角色之间有一对多的关系。

我将如何在 dbml 中对此进行建模,以便生成的 User 类具有用户分配给它们的角色列表?

0 投票
6 回答
4521 浏览

sql - SQL 多对多匹配

我正在为网站实施标记系统。每个对象有多个标签,每个标签有多个对象。这是通过维护一个表来完成的,每个记录有两个值,一个用于对象的 id 和标签。

我正在寻找编写一个查询来查找与给定标签集匹配的对象。假设我有以下数据([object] -> [tags]* 格式)

如果我想匹配(红色),我应该得到苹果和救火车。如果我想匹配(水果,食物),我应该得到(苹果,香蕉)。

我如何编写一个 SQL 查询来做我想做的事?

@杰里米·鲁滕,

感谢您的回答。使用的表示法用于提供一些示例数据 - 我的数据库确实有一个表,每条记录有 1 个对象 id 和 1 个标签。

其次,我的问题是我需要获取与所有标签匹配的所有对象。用你的 OR 代替 AND 像这样:

运行时不产生任何结果。

0 投票
1 回答
2383 浏览

many-to-many - MS Dynamics CRM 4.0 中的多对多关系 - 如何?

我正在为我大学的一个项目开发 MS CRM 服务器。

我想做的是让 CRM 的用户标记一些联系人,我想创建一个实体来归档标签,并在标签实体和联系人之间创建 N:N 关系。我已经创建并发布了新实体和关系,但我不知道如何在联系表单中添加查找字段,以便用户可以看到与一个联系人相关的标签并添加一个新的。

谁能帮我?

如果您无法理解我要做什么,请告诉我,我将重新制定。

谢谢

0 投票
6 回答
20422 浏览

c# - LINQ to entity - 构建 where 子句以测试多对多关系中的集合

所以,我使用的是 Linq 实体框架。我有 2 个实体:ContentTag. 它们彼此之间是多对多的关系。Content可以有很多TagsTag也可以有很多Contents。所以我正在尝试编写一个查询来选择任何标签名称等于的所有内容blah

实体都具有另一个实体的集合作为属性(但没有 ID)。这就是我挣扎的地方。我确实有一个自定义表达式Contains(所以,无论谁可以帮助我,你都可以假设我可以为一个集合做一个“包含”)。我从以下网址得到这个表达式:http ://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2670710&SiteID=1

编辑 1

我最终找到了自己的答案。

0 投票
1 回答
6336 浏览

jpa - JPA - 具有复合键的表与其自身的多对多关系

我想使用 JPA 注释创建一个表(RoutePlace)与其自身的多对多关系。我想加入的表的独特之处在于它有一个复合键。

示例:https ://h4losw2.files.wordpress.com/2008/10/tables.png

替代文字

有什么建议么?

提前致谢

0 投票
2 回答
2510 浏览

sql - 如何编写通过关系表获取结果的 SQL 语句?(多对多)

我有 3 个表(档案有很多部分,部分(可能)属于许多档案):

  • archive

    • id PK
    • description
  • archive_to_section

    • archive_id PK FK
    • section_id PK FK
  • section

    • id PK
    • description

列出属于某个归档 id 的所有部分的 SQL 会是什么样子?

我只是在学习 SQL。从我读到的内容听起来我需要加入或工会?仅供参考,我正在使用 postgres。


[编辑]这是 gdean2323 的答案,没有别名:

0 投票
5 回答
12443 浏览

c# - NHibernate 中的多对多删除级联

我在一个系统中有一个场景,我试图尽可能地简化它。我们有一个(让我们称之为)人工制品表,人工制品可以被任意数量的安全角色访问,安全角色可以访问任意数量的人工制品。因此,我们在数据库中有 3 个表 - 一个描述人工制品,一张描述角色,以及一个将人工制品 ID 链接到角色 ID 的多对多关联表。

在领域方面,我们有两个类——一个用于角色,一个用于人工制品。artefact 类有一个 IList 属性,它返回可以访问它的角色列表。(但是,角色不提供获取可以访问的人工制品的属性)。

因此,人工制品的休眠映射包含以下内容;

这一切都很好,如果我删除了一个人工制品,关联表将被适当地清理,并且删除的人工制品和角色之间的所有引用都被删除(尽管角色没有被正确删除——因为我们不希望删除孤儿)。

问题是 - 如何删除一个角色并让它自动清除关联表。如果我目前尝试删除一个角色,我会得到一个引用约束,因为该角色的关联表中仍有条目。成功删除角色的唯一方法是查询链接到该角色的所有人工制品,从人工制品的角色集合中删除该角色,更新人工制品,然后删除该角色 - 不是很有效或很好,尤其是在联合国 -简化的系统,角色可以与任意数量的其他表/对象相关联。

我需要能够向 NHibernate 提示我希望在删除角色时清除此关联表 - 这可能吗,如果可以的话 - 我该怎么做?

谢谢你的帮助。

0 投票
5 回答
4355 浏览

sql - 有趣的多对多sql连接

我有三个相关表“A(id,val)”,“B(id,val)”和一个值为“AB(aid,bid,val)”的链接表

我正在查询 B 以带回 A 值,例如:

每个 A 都有很多 B,每个 B 都有很多 A。

我崩溃的问题是需要过滤集合,以便查询仅在 AB.val 是任何给定 A/B 对的最大值时才返回行

例如,如果我有数据:

一个

AB

我只想选择 AB 的第一行和最后一行,因为它们是每个 A 的最大值,然后能够查询 B.val = 'foo' 以仅返回第一行。我不知道如何仅限制 AB 表中的 max val 行。

我能得到的最好的是

但这并不完全奏效。首先,它只是感觉是错误的方法,其次,它返回了错误的投标值。也就是说,从子查询返回的出价不一定与 max(val) 来自同一行。我相信这是一个已知的分组问题,当未为排序规则或分组指定列时选择返回的值未定义。

我希望上面的一些内容是有道理的,在过去的几个小时里,我一直在把头撞在墙上,任何帮助都将不胜感激。谢谢。

(对于那些想知道的人,它的实际用途是用于字典后端,其中 A 是单词表,B 是音素表。AB 是带有“位置”列的单词表。查询是查找所有以结尾的单词一个指定的音素。(音素是一个词的声音,在用法上类似于国际音标)

0 投票
1 回答
1487 浏览

asp.net - ASP.NET 动态数据中的多对多关系

我需要在我的项目中使用多对多关系,并且由于动态数据本身不支持它,我想要求一个类似的实现示例。

我正在特别寻找一种方法来创建目标实体的新实例并将新的 m2m 关系添加到记录以及使用现有实例来创建关系。

我的时间很紧,所以非常感谢任何帮助。

0 投票
2 回答
2662 浏览

linq-to-sql - 最简洁的 LINQ To SQL 用于获取多对多任一侧的 COUNT(*)?

请帮助我进行健全性检查。假设多对多关系:

发布,PostTagAssoc,标签 http://www.codingthewheel.com/pics/many_to_many.gif

什么是最简洁的方式(使用 LINQ to SQL)来获得一个结果集,显示每个标签(或帖子)分配给它的帖子(或标签)的总数?

谢谢!