问题标签 [one-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.
mysql - One-to-many relationship in the same table
Im trying to use to define a one-to-many relationship in a single table. For example lets say I have a Groups table with these entries:
The group Coldplay could be a child of the group Capital Records and a child of the group Management Company and Gnarls Barkley could only be a child of Atlantic Records.
What is the best way to represent this relationship. I am using PHP and mySQL. Also I am using PHP-Doctrine as my ORM if that helps.
I was thinking that I would need to create a linking table called group_groups that would have 2 columns. owner_id and group_id. However i'm not sure if that is best way to do this.
Any insight would be appreciated. Let me know if I explained my problem good enough.
php - PHP/mySQL - 如何将嵌套行提取到多维数组中
来自我的另一个问题,我学会了不要在循环中使用数据库查询,因此我必须学习如何在循环之前以方便的方式获取所有数据。
假设我有两个表“秤”和“项目”。items 中的每一项都属于一个 scale in scales,并与一个外键(scaleID)链接。我想在一个查询中将所有数据提取到一个数组结构中,这样第一个维度是所有列的所有比例并嵌套在其中,一个项目的所有项目都缩放所有列。
结果将是这样的:
到目前为止,我主要完成了一对一关系的左连接。这是一个一对多的,我无法完全理解它。
它是一个正确的连接吗,它也可以用一个子查询来完成,如何将完整的外部行也放入其中......
稍后我想用嵌套的 foreach 循环遍历它。
也许只是我头疼...
linq-to-sql - 在 Linq2Sql 中保存一对多关系的最佳方法是什么?
我试图找出在 Linq2Sql 中保存简单的一对多关系的最佳方法。
假设我们有以下 POCO 模型(顺便说一句伪代码):
人有零到多个车辆。
现在,当我保存一个人时,我将该 poco 对象传递给存储库代码(恰好是 L2S)。我可以很好地保存 person 对象。我通常这样做。
我不确定我应该在哪里以及如何处理该人可能拥有的车辆清单?有什么建议么?
sql - 通过要求所有多个满足条件来过滤一对多查询
想象以下表格:
创建表格框(id int,名称文本,...);
创建表 thingsinboxes(id int, box_id int, thing enum('apple,'banana','orange');
表格看起来像:
如何选择至少包含一个橙色且没有不是橙色的框?
假设我有几十万个盒子,而且盒子里可能有一百万个东西,这个规模如何?
如果可能的话,我想把这一切都保存在 SQL 中,而不是用脚本对结果集进行后处理。
我同时使用 postgres 和 mysql,所以子查询可能很糟糕,因为 mysql 不优化子查询(无论如何都是 6 之前的版本)。
java - 如何在 Ibatis 中实现一对多关系?
假设我有这个类:
A 类与 B 类具有一对多的关系。我已经有一个服务可以缓存 B 对象并在 id 上返回它们。
表架构看起来像这样
现在,我如何在 iBatis 中映射它?
由于 B 对象已经被缓存,我想将 id 列表获取到 A 对象中,然后使用该服务来丰富 As。
有人可以建议如何去做吗?
我能想到的两种可能的选择是:
- 在 A(AtoB 映射)中创建一个内部类,并在 iBatis 配置中使用选择查询来填充它
- 在 iBatis resultMap/select 中使用另一个选择来获取 B id 列表(不太清楚如何在配置中执行此操作)
nhibernate - NHibernate 单向、一对多、映射问题
我在 NHibernate 中有一个场景,其中实体 Employee 和 EmployeeStatus 之间存在一对多的关系。
Employee 具有属性,例如:ID、Name 和 EmployeeStatus 的 IList,而 EmployeeStatus 就这个问题而言,只有它自己的 ID 和一些自由文本。
我不需要从 EmployeeStatus 中保存对 Employee 的引用,状态的管理将完全通过 Employee 实体完成 - 添加到 IList 属性。IE:我想很简单地做到以下几点;
我尝试了各种方法,包括创建一个单向一对多映射,其中 inverse 为假,级联设置为 all-delete-orphan,这一切看起来都应该工作,但它会生成一个关于无法设置的异常EmployeeStatus 中的 EmployeeId。我被引导相信这是因为 NHibernate 想要使用 EmployeeId 作为 NULL 进行插入,然后将其更新为父级的 ID。
我想我在这里遗漏了一些东西,所以很简单 - 谁能告诉我我的映射文件应该是什么样子才能实现上述目标?
提前致谢
托尼
-- 编辑:这是所要求的类的粗略概念 --
php - PHP并输出一对多结果
到目前为止,我只处理了 php 中的一对一关系,但我遇到了一个涉及一对多关系的问题。我已经坐了几天没有运气,所以我迫切希望有人介入并在我失去理智之前向我展示解决方案。
在我的数据库中有一系列 url,这些 url 由 SELECT 查询以及来自不同表的各种其他字段接收。每个 url 至少有一个与之关联的类别,但可以有多个类别。所以在我的结果中,我可能会看到一些看起来像这样的东西:
我有这个工作,有点。当我使用while循环和mysql fetch数组循环并打印它们时,结果看起来与上面完全一样。太好了,除了我需要的是它读取类似的内容:
因此,基本上每个 url 的所有类别都以某种方式组合在一起,因为它们被打印出来。我的第一次尝试让我尝试了一个嵌套的 while 循环,但它没有用,我不确定这是否可行。除此之外,我想知道我是否可能需要一个多维数组(完全猜测,我以前从未使用过)。
我按照上面的链接 id 对这些结果进行排序,所以我知道当前循环迭代中的链接 id 是否与上一次迭代中的链接 id 匹配 - 那么我有一些具有多个类别的东西。我想我是真的很接近,但我就是想不通。
有任何想法吗?
hibernate - 如何从 EJB3/JPA 中的集合中急切地获取单个“默认”实体
我有一个带有多个电话号码的 Person 实体。
现在我想为急切获取的 Person 实现一个“获取默认电话号码”方法。此默认电话号码是 phoneNumbers 集中的电话号码之一。有没有办法做到这一点?
我试图实现这一点的原因是在一个页面上列出了这个默认电话号码,该页面列出了数据库中的“所有”人员。
作为一名 JPA 初学者,我最初使用以下方法进行了尝试:
但这当然会导致列表页面非常缓慢。
那么有没有办法定义一个瞬态属性,该属性根据某些查询从实体集合中获取单个实体?我使用 Hibernate 作为我的持久性提供程序。
nhibernate - NHibernate 映射问题
我有以下对象模型:
Element
一个有很多孩子和后代的顶级抽象类。- 一个班
Event
。 - 每个都
Element
包含一袋Event
s。 - 每个
Event
都有一个指向 parent 的指针Element
。
到目前为止 - 相当标准的一对多关系。
但是,我想根据具体的类策略使用表。因此,该类Element
未映射到数据库。我试图以这种方式解决它:每个具体的后代都Element
定义了自己的 Bag of Event
s。这样做的问题是每个<bag>
元素都包含一个<key>
元素。该关键点指向 的Parent
属性Event
。它还使s 表Parent
中的列成为Event
包含 Bag 的表的外键!但是一列不能是多个表的外键,我在插入时遇到异常。
我还尝试使s 表Parent
中的字段Event
成为多对任意类型的字段。那行得通。但是当我想使关系双向时,意味着将包添加到我的后代中,Element
我又回到了同样的问题。包 => 外键 => 插入异常。
我确信这个案例并不像看起来那么独特。预先感谢您的帮助。
c# - NHibernate 一对多映射问题
我必须映射两个具有外键关系的简单表。其中一个表是Contact包含列id(int 类型的主键)、name、address和guid(新添加且不是主键)。另一个是phone__number包含列id(int 类型的主键)、 contact ___ id (联系人表中 id 的外键)和phone__number。
Contact 表的映射文件如下:
Phone_number 表的映射文件是:
Contact 和 PhoneNumber 类是:
当我分别加载联系人和电话号码时,它可以工作,但是在添加 set 元素以获得一对多关系后,nhibernate 给出了一个错误:
NHibernate.MappingException:为类型 OfflineDbSyncWithNHibernate.Models.Contact 指定的映射信息无效,请检查映射文件中的属性类型不匹配
我是 nHibernate 的新手,所以我不确定 set 元素是否有错误,或者我什至不应该使用它。任何帮助将不胜感激。