问题标签 [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.
java - 使用 Hibernate Criteria 查询多对多关系
我不确定如何描述这个问题,所以我认为一个例子是问我问题的最佳方式:
我有两个具有多对多关系的表:
DriversLicence <-> LicenseClass
LicenceClass 是“汽车”、“摩托车”和“中刚性”之类的东西。
使用 Hibernate Criteria,我如何找到同时具有“汽车”和“摩托车”LicenceClasses 的所有许可证?
更新 12/11/2008 我发现这可以通过使用自定义 ResultTransformer 轻松实现。然而问题是结果转换器仅在查询返回其结果后应用,它实际上并没有成为 SQL 的一部分。所以我想我现在的问题是“你能做我最初在 SQL 中描述的事情吗?是否有 Hibernate Criteria 模拟?”
nhibernate - 如何在我的 API 中处理多对多关系
我有两个实体 Foo 和 Bar,它们之间存在多对多关系。
假设对于为什么 Foo 可能对多对多关系“负责”没有语义论据,但是我们任意决定 Foo 负责该关系(即,在 NHibernate 中,我们将 Bar 标记为 Inverse)
从数据库的角度来看,这一切都很好,但是我的实体 API 揭示了一个问题。
如果我们决定 Foo 负责这种关系,我如何在不创建甚至不应该存在的公共 Bar.AddFoo() 方法的情况下更新 Bar 中的关联集合?
我觉得我应该能够保持我的域模型的完整性,而不必在这样的操作之后从数据库中重新加载这些实体。
更新:受评论者启发的代码调整。
sql - MySQL严格选择涉及多对多表的行
我有三个多对多格式的表。即,表 A、B 和 AB 已按您的预期设置。
给定一组 A id,我只需要选择 AB 中与所有 id 匹配的行。
像下面这样的东西是行不通的:
"SELECT * FROM AB WHERE A_id = 1 AND A_id = 2 AND A_id = 3 AND ..." 因为单行不会有多个 A_id
使用 sql 语句中的 OR 并没有更好,因为它产生的结果是所有具有至少一个 A id 的结果(而我只想要那些具有所有 id 的行)。
编辑:
对不起,我应该解释一下。我不知道实际的多对多关系是否与实际问题相关。这些表格概述如下:
所以我有一个人员列表,一个选项列表,以及一个选项和人员表。
因此,给定一个选项 ID 列表,例如 (1, 34, 44, ...),我只需要选择那些拥有所有选项的人。
sql - SQL如何搜索多对多关系
我有一个包含两个主表notes
和labels
. 它们具有多对多的关系(类似于 stackoverflow.com 对标签的问题)。我想知道的是如何使用 SQL 使用多个标签搜索笔记?
例如,如果我有一个带有三个标签“一”、“二”和“三”的便笺“test”,而我有一个带有标签“一”和“二”的第二个便笺“test2”,那么 SQL 查询将是什么?找到所有与标签“一”和“二”相关的笔记?
mysql - 类似 Twitter 的“关注用户”和“观看这个”问题
处理多对多触发关系的最佳方法是什么,例如 Twitter“关注此用户”问题。
我对用户“观看”线程的回复有类似的问题。如果有 10,000 个用户在观看一个帖子,并且有人回复,那么如何最好地通知观看者?我能想到的只有以下几点:
插入后,检查“监视表”[字段:user_id,thread_id] 是否有任何匹配此线程 ID 的线程。这是我需要通知的用户列表。对于每个需要通知的用户,在“通知表”[字段:user_id、message、addon 等]中插入一行。现在我可以通过这个表向任何用户显示他们的通知。
问题是,这一切听起来非常非常昂贵。尤其是 10,000 刀片部分。
必须有更好的方法来做到这一点......想法?
database - 帮助处理多对多关系
我的表中存在多对多关系的问题,这是在培训中心工作的员工和讲师之间的关系。我找不到它们之间的链接,我不知道如何获得它。员工字段是:
- 职工号。
- 员工姓名
- 公司名称
- 部门职称
- 商业领域
- 手机号码
- 分机
- 排行
讲师字段是
- 导师姓名
- 研究所
- 手机号码
- 电子邮件地址
- 费用
c# - Linq2Sql Many:很多问题,你会怎么做?
我知道很多:Linq2Sql 不支持很多,但我正在研究一种解决方法
我正在使用我的小 SO 克隆,我有一个带有问题的表和一个带有标签的表和一个链接表 QuestionTag,所以我在问题和标签之间有一个经典的多:多关系。
为了在首页显示问题列表,我有这个类,我想从 Linq2Sql 查询中填写
问题是我应该如何填写标签集合。我发现这不可能在 1 个单一查询中完成,因此我将其分为 2 个查询,1 个用于获取问题,1 个用于获取标签,然后尝试加入它们。我知道 Entity 框架支持 many:many 那么他们是如何做到的呢?你会怎么做?任何替代方法?查询当然应该是有效的。
sql - 您如何进行多对多表外连接?
我有 3 张桌子,foo、foo2bar 和 bar。foo2bar 是 foo 和 bar 之间的多对多映射。以下是内容。
我要请求的是,“给我一份所有 fid 和 zid 为 30 的值的列表”
我希望得到所有 fid 的答案,因此结果如下所示:
.net - 如何在实体框架中实现从实体到自身的多对多关联?
我有一个实体,它公开了一组相同类型的孩子。实体本身可以是另一个实例的孩子——实际上是与自身的多对多关系。在数据库中,我有一个包含两列的链接器表 - parentId 和 childId - 两者都引用了我的实体表中的 Id 列。Entity Framework 正确识别出它与自身是多对多关系但抛出错误:
从第 249、300 行开始的映射片段中的问题:具有可能不同键的两个实体被映射到同一行。确保这两个映射片段将 AssociationSet 的两端映射到对应的列
有什么想法可以做到这一点吗?
c# - 是否可以添加多对多关系而不在 NHibernate 中初始化集合?
这是我的课:
这是我的映射:
这是问题所在:
在最后一行 [user.Friends.Add(friend)],我注意到它会在添加新朋友之前初始化 Friends 集合。
我的问题是:在 NHibernate 中是否有避免这种行为?因为出于性能原因,我只想执行单个 INSERT 命令。