问题标签 [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.
sql - 作为自上而下 JSON 的 SQL 自引用表查询
我有一个名为 scope 的自引用表(在我的 user_account 架构中),它是分层数据 - 一些示例数据(Postgres 9.4):
*****编辑:******
制作了一个 SQL 小提琴:http ://sqlfiddle.com/#!15/43ff9/2/0有一个更详细的例子。请注意 JSON 输出底层的重复性质。我将把这些信息留在这里以供参考。
*****结束编辑******
user_account.scope
显然,顶级作用域没有 parent_id,它可以(任意)深入多个级别。
我正在尝试编写一个 SQL 查询,它将整个表作为嵌套的 JSON 对象递归返回。我在这方面取得了很大的成功:
但问题是,子范围被列为顶级项目的数组(因为 json_agg(sub_scopes) 部分),但仅列为简单的 NULL 或任何嵌套的单个对象(因为 row_to_json( ssc)部分)。它还在 JSON 中重复父级,为其每个 sub_scopes 重复一次。
我得到了什么:
我想要的是:
我尝试将 row_to_json 更改为 json_agg,但您不能在递归调用中使用聚合函数。关于如何 A)修复此查询或 B)postgres 方法来“修复”json 以按照我的意愿合并值的任何建议?一直在玩这个,但没有任何运气。
谢谢!
entity-framework-6 - EF6 中的自引用表
我认为这会很容易......我有一个 table Module
,它可以包含“基本”模块和“复合”模块(由 1-n 个基本模块组成)。
所以我在 SQL Server 2014 中有这两个表:
我填写了一些基本模块:
现在我创建了一个 EF 6“代码优先,数据库逆向工程”模型并获得了这个Module
类:
和这个上下文类:
当我现在尝试用这段代码创建一个新的复合模块时,结果发现事情并不像我想象的那么容易......
此代码导致错误(在尝试获取基本模块 #1 的行上):
System.Data.Entity.Core.EntityCommandExecutionException 未处理
HResult=-2146232004
消息=执行命令定义时发生错误。有关详细信息,请参阅内部异常。
来源=实体框架InnerException:System.Data.SqlClient.SqlException
HResult=-2146232060
消息=无效的列名“Module_ModuleId”。
我在这里想念什么?为什么 EF6 逆向工程代码不够聪明,无法创建适用于这种情况的模型?
到目前为止,我一直在使用 EF4 和数据库优先的方法,所以所有这些流畅的代码优先配置对我来说仍然有点神秘(和问题)......有人看到我的(很可能非常)明显的菜鸟错误??
PS:这是“现有数据库中的代码优先”逆向工程产生的代码 - 不是我自己的。那么为什么逆向工程输出的代码最终还是不行呢??
mysql - 使用自引用列更新 MySQL 表
我有一个看起来像这样的表(简化):
自引用列指的是同一张表的 id 号。在上面的例子中,Wien 和 Виена 都指向同一个城市,所以它们的 selfreference 列的值应该等于 1。
换句话说,我需要做类似的事情
但是上面的 SELECT 语句显然是错误的。我不知道如何进行。
任何提示将非常感谢。
万事如意,腾
编辑:所需的输出如下所示:
ruby-on-rails - 模型回调不适用于自引用关联
我有一个Evaluation
有很多子评估的模型(自我参照)
我正在使用子评估作为嵌套属性创建和更新评估。
calculate_score
方法在子评估创建时触发,但在更新时不会触发。我试过before_update
和after_validation
. 但似乎没有任何效果。
评估表
似乎是什么问题?
c# - RejectChanges 数据集中的自关系
我在拒绝带有自相关表的 DataSet 时遇到问题。
首先,我在表中插入父行和子行。然后我从表对象中调用 RejectChanges 方法或从 DataSet 中调用相同的方法。RejectChagnes 方法抛出 RowNotInTableException。
这是演示这一点的代码(TestRejectChanges.zip):
我试图覆盖 DataTable 的 RejectChanges 但这个方法不是虚拟的。有没有办法使用 DataSet 的 RejectChanges 来做到这一点?
c# - 使用 EF Code First 对员工-助理关系建模
简而言之,以下是业务需求:
- 所有员工都需要存储在数据库中
- 有些员工有助理,有些没有
- 一些员工有不止一名助理
- 助理也是雇员
显然有一点自我参照的情况。但与典型的“员工-经理”情况不同的是,一个员工可以有 0 个或多个助手。因此,Employee和员工助手的组合需要以Employee和EmployeeAssistant之间的一对多关系存储在单独的表中。但是我很困惑如何在 Entity Framework 6 Code First 中对此进行建模。
我从这个开始:
Update-Database
但我在命令期间收到错误:
在表“EmployeeAssistant”上引入 FOREIGN KEY 约束“FK_dbo.EmployeeAssistant_dbo.Employee_EmployeeId”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
我错过了什么?我应该以不同的方式处理这个问题吗?
sql-server - 分层表中的汇总计数(自引用表)
我有一个以下格式的表。这是一个自引用表,其中每条记录都指向其父记录。
我希望输出采用以下格式。父母的数量应该是叶子孩子的数量之和。 注意:只有叶子孩子会包含计数。我想把它卷起来直到父母。
请帮忙。
database - 如何在 Flask-SQLAlchemy 中创建自引用的一对多关系?
我有一个名为 的模型Post
,它有一个名为 的布尔字段is_answer
。如果 a 的is_answer
字段Post
为 True,则为“问题”;否则,这是一个“答案”。我想创建以下问答关系:
一个“问题”可能有多个“答案”,但一个“答案”只有一个“问题”。由于“问题”和“答案”本质上都是Post
s,所以我认为这种关系必须是自我参照的。
这是我尝试过的:
错误是:
ArgumentError:Post.question 和反向引用 Post.answer 都是相同的方向符号('ONETOMANY')。您的意思是在多对一上设置 remote_side 吗?
database-normalization - 自我参考
对于我正在执行的评估任务,实体相册具有属性also_bought,这是一个自引用属性。然而,这个属性对于任何一张专辑都有多个条目——因为also_bought 推荐很少只有一个推荐——因此,在标准化方面有点问号。我不确定它是否通过了 1NF。
需要明确的是,整个实体的集合是
专辑(album_id、标题、播放时间、流派、release_date、price、also_bought)
sqlalchemy - SQLAlchemy:如何查询自引用邻接列表表上的可选列?
我有以下Table
代表时间线的模型。
language_marker
Column 是需要以递归方式查询的列。并不是所有的记录都有这样的属性,业务逻辑是:沿着从根到子时间线的层次谱系,至少有一级的TimeRange
实例带有这样的属性,最底层的应该返回。这有点像级联样式表,如果TimeRange
对象本身没有这样的属性,只需往上一层看,util 找到了一层,最后定义的样式获胜。
我应该研究什么技术方向来实现这样的查询?我正在使用 SQLAlchemy,后端是 SQLite。谢谢。