问题标签 [self-referencing-table]

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 回答
715 浏览

entity-framework - 如何首先使用代码创建自引用表?

我有一个在父子关系中引用自身的实体。我需要先了解如何使用代码和流畅的 API 来实现这一点。下面是我的实体类。

我尝试在我的实体配置中使用以下代码。

但我得到了这个错误 -

在模型生成期间检测到一个或多个验证错误:

Vantage.Data.EF.MenuItem_Parent::多重性与关系“MenuItem_Parent”中角色“MenuItem_Parent_Target”中的引用约束冲突。因为从属角色中的所有属性都不可为空,所以主体角色的多重性必须为“1”。

所有帮助表示赞赏。

谢谢你。

0 投票
1 回答
10940 浏览

c# - 将类别父 ID 自引用表结构映射到 EF Core 实体

数据库表:

在此处输入图像描述

我尝试使用这种方法将类别表映射到 EF 核心:

实体:

然后在存储库中:

这有效,但无论您调用多少次 Include() 或 ThenInclude(),都不会返回 3 个级别之后的任何内容。

我最终自己编写了代码,用递归函数填充子类别:

有谁知道编写存储过程以获取表层次结构并映射到我在示例中提供的类别实体的更好方法?

0 投票
2 回答
675 浏览

ruby-on-rails - 友谊自我参照协会

我一直在尝试实现一个 Facebook 风格的朋友系统。我已经阅读了几个教程并且无法理解我做错了什么。友谊控制器和视图中用于添加朋友的链接可以工作,但在数据库级别会引发错误。

当我打开 rails 控制台并放置:

我得到:

用户.rb

友谊.rb

我正在使用设计进行身份验证。

0 投票
2 回答
13465 浏览

sql - 自引用表 SQL 查询

我有四列的表id, name, designation, manager_id.

表架构:

如下

员工层次结构如下:

我想要一个 SQL 查询来显示特定员工的所有可能的经理。他的 Juniors 或其他次级员工的姓名不应该出现在结果集中。

显示所有其他同级或更高级别的员工。

我无法为此找到解决方案。

0 投票
1 回答
656 浏览

ruby-on-rails - 产品和类别关系

试图在我的应用程序中建立以下关系。

产品可以属于许多类别、子类别和子子类别。

当前设计:

特定类别的产品可以列为category.products

如何访问特定sub_category和的产品sub_sub_category

我应该做些什么改变??

0 投票
0 回答
106 浏览

symfony - Symfony,具有自引用属性的多对多

我有一个实体 Room,它与自身具有 ManyToMany 关系,并且这种关系 (RoomLinkRoom) 具有属性“权重”:一个 Room 可以链接到多个 Room,具有 ordering(weight) 值(以及可能的其他属性)。

到目前为止,我的代码处理了一个或多个 RoomTo 到 RoomFrom 的链接。假设我们有: RoomA:1 RoomB:2

在 Room Form 中,我们可以将 RoomB 添加到 RoomA 我们在 RoomLinkRoom 中有这个条目:

RoomFromId:1 RoomToId:2

但这只是我需要的一半:我还需要反向部分管理。

当 RoomFromId,1 链接到 RoomToId,2 我还想添加这个中间实体:RoomFromId,2, RoomToId,1

然后我还必须管理删除部分:如果我删除房间 A,条目 (roomFrom, roomTo) : (1, 2) 将被删除,但反向 (2, 1) 也必须删除。

我怎样才能做到这一点?处理整个问题的最佳(最干净?)方法是什么?是否有处理这种情况的“标准模式”(“自动”与否)?我不确定如何进行,但可能涉及事件,例如 postFlush ?但是它是否也能够处理“反向”(To)侧的删除?

实体的(相关部分)是:

我已经尝试在控制器中在刷新后添加:

这添加了反向/补充条目,但我仍然不知道这是否干净/防错。但我敢肯定,这并不能解决删除问题。

那么有人用过这种关系吗?

我在这里看到了其他讨论(例如,这个),但是,他们似乎并不关心这种“反向”管理。

先感谢您。

0 投票
0 回答
196 浏览

sql - 在sql的自引用表中递归复制行

我有一张这样的桌子:

我想将给定的 id 列表与他们的孩子、孙辈一起复制,但是当我尝试它时,它会保留古老的父 ID,因此不会保留这样的层次结构:

如果我给出 ids 列表 (1, 4) 和另一个像“10”这样的 parntid 值,它会复制 id 为 1 和 4 的行,新的父 id 为 10,但重复的子节点会获得新插入的父节点,因此它会保持层次结构

我现在要做的就是使用此查询将所有副本放入新父级,但我不想将所有子级都放入新父级

(查询应该在 sql server 2008 和 oracle 中工作)

0 投票
0 回答
157 浏览

c# - 如何使用实体框架扁平化数据图?

我有这个查询:

而且我需要为根元素(Parent = null)扁平化所有OrganizationHierarchyItems 。

如何使用 Entity Framework 扁平化自引用实体?

更新:

现在我想出了这个代码:

但是上面代码的问题是我正在加载所有 OrganizationHierarchyItems 以仅展平一个根元素的层次结构。

0 投票
1 回答
216 浏览

doctrine-orm - Doctrine 2 ZF3 自引用实体未更新父项的所有字段

我有一个带有父母和孩子的自引用实体。奇怪的是,当我将父级和子级的表单元素(DoctrineModule ObjectSelect)添加到表单时,当我持久化实体时,父实体的其他一些字段不会更新。子实体更新正常。

在父级的更新查询中,这些字段不是我要更新的。就像学说不再承认父母(拥有方)的变化一样。在持久化之前,我从表单中获得了具有实际更改的正确实体,但学说不会更新查询中更改的字段。

当我删除表单中父项和子项的表单元素时,一切正常,父实体更新/保留所有字段。

0 投票
1 回答
429 浏览

python - SQLAlchemy声明性mixin类上的自引用外键关系与declared_attr

我有一个 mixin 类,我在 SQLAlchemy 应用程序的开头附近定义了它,然后继承了我使用的几乎所有声明性模型。

这适用于大多数预期的用例。

但是,当我将Account自己定义为继承自Owned.

我看到,在这种情况下,我已经变成created_by_idupdated_by_id自引用外键。然而,我不明白为什么 SQLAlchemy 没有用预期的实例填充它们的关联relationship列。Account

我究竟做错了什么?