问题标签 [jointable]

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 投票
2 回答
590 浏览

ruby-on-rails-3 - Rails:连接表中两个属性的唯一性导致 500 错误

我有以下模型,它们基本上试图表示教授具有特定水平的许多科目的知识。科目是固定的,因此不会创建新科目,只会通过知识连接表与教授“相关”。

我想要一个表格,让教授在他的帐户中添加一个主题,我决定有一个知识表格(因为我也希望能够插入一个级别)。

它看起来像这样:

在知识控制器的创建操作中,我有这个:

我想/期望得到一个ActiveRecord说这个知识不能被插入,因为有一个唯一性违规,但是不,我只是在日志中看到一个 500 和一个回滚,但似乎执行仍在继续。所以我的问题是:我做错了什么,或者我该如何改善这种建模情况?我相信表单需要与连接模型相关,因为我希望在其上包含该模型的字段......但也许我错了,我可以用一种简单/更清洁的方式来做。

编辑

正如其中一条评论所要求的,这里是表单提交的日志和回滚后的 500 错误:

我在创建操作中添加了一些条件,如下所示:

这实际上在 500 之后显示以下内容:

我想知道为什么会引发异常,而不是仅仅将错误添加到对象中并让我管理这种情况。以下行不应该做什么?

0 投票
3 回答
1230 浏览

mysql - 如何填写联接表?

我是 mySQL 的新手。我从两个表创建了一个连接表:

学生应在我的网站上填写表格并提供他的姓名和作业说明。据我所知,然后我会在我的 php 代码中查询数据库,并将 student.name 和 homework.description 插入到相应的表中。但是我应该如何填写 student_homeworks 表?我应该再次查询这两个表并找到 ID,然后填充连接表吗?(我用谷歌搜索但刚刚发现如何创建连接表和 SQL JOIN 命令)

0 投票
1 回答
1847 浏览

java - Java Hibernate 注解(@JoinTable、@Filter)

我最近开始使用 Hibernate,并试图了解所有注释并确保我做事正确。我有两个类似于下面的表'user'和'user_friends'

和用户朋友表

现在在 SQL 中,我运行了一个看起来类似于

我在 Java 设置中有两个类,其方式与此类似

我之前问过这个问题,但仍然无法按照我的意愿进行工作。我需要能够返回一组 UserBuddy.class,其中包含该好友的姓名和电子邮件,没有其他内容,而不是他们的注册时间等(通过使用 User 类进行映射)。我也很难确保它只返回接受请求的好友(ACCEPTED=1)

任何人都可以提供任何建议吗?

0 投票
1 回答
7280 浏览

hibernate - @OneToMany @JoinTable 和更新操作的休眠问题

我遇到了一个有点奇怪的问题;我有以下 JPA 映射:

和:

我正在做一个简单的测试:

  • 坚持一个具有一些属性的位置
  • 更改这些属性之一的名称
  • 将位置合并回来(使用更改后的属性)

我的期望(考虑到传播)是合并位置只会传播到属性,属性会得到更新。这种情况(广泛)发生 - 已更改的 Attribute 的值确实已更新,但随后在已存在映射的 Join Table 中尝试新的 INSERT。由于这个新的和不必要的插入,失败(如预期的那样)是:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1-1' for key 'PRIMARY'

现在,罪魁祸首似乎是方式hashCodeequals已实现 - 似乎,当 Hibernate 持久化属性集时,集合持久化器检查是否需要插入每个条目(每个属性):

if ( collection.needsInserting( entry, i, elementType ) )

因此,由于其中一个属性的名称确实发生了变化,现在这被认为需要插入(这并不正确 - 不需要插入,只需更新) - 因此在连接表中插入操作。我当然可以将 id 用于 equals 和 hashcode,但这不是 Hibernate 推荐的方式,我也不想这样做。我是否在映射中遗漏了可能导致此问题的某些内容?这是一个非常标准的映射 - 简单的一对多和简单的合并操作 - 有什么建议可以让它工作吗?

任何帮助表示赞赏。

谢谢。

欧根。

0 投票
1 回答
189 浏览

sql - 在数据库架构中加入表?

我一直在研究一个数据库应用程序(Access 2007)并且有几个关于架构的问题。这是迄今为止我编写的最复杂的应用程序。

我目前有 5 个表,每个表都有自己唯一的 ID 字段:

  • 平台
  • 车辆
  • 手册
  • 程序
  • 故障

同一个故障可能出现在多个程序中,同一个程序可能出现在多个手册中。我想为用户提供复制和删除记录的机会,以及表之间的交叉链接记录。

目前,我在上面列出的每个表之间都有连接表,

  • 平台_车辆
  • 车辆手册
  • manuals_procedures
  • 程序故障

编辑主表之间的关系(通过编辑连接表的内容)变得相当复杂,因为复制和删除操作对其他表有级联影响。在我看来,这可以使用递归有效地执行,但实际上让它工作完全是另一回事。

问题 #1:我描述的架构是安排这些数据的“好”方式,还是不必要地复杂?(我有这样做的习惯。)

问题 #2:是否有“首选”方法来执行此操作?

问题 #3:我最好以不同的方式组织表格,例如:

只有5张桌子,

  • 平台
  • 车辆
  • 手册
  • 程序
  • 故障

每个表都有一个用于其内容字段的键,以及另一个表示其在下一个更高表中的父记录的键。例如,

  • 平台
  • 平台ID、平台名称
  • 车辆
  • 平台ID、车辆ID、车辆名称
  • 手册
  • 车辆 ID、手册 ID、手册名称
  • ...

这对我来说似乎更简单,当然也不那么复杂。如果大家愿意提供一些专业的反馈,我将不胜感激。

谢谢!

0 投票
1 回答
1384 浏览

c#-4.0 - 使用 Fluent nHibernate 连接具有不同列名的两个表

我正在使用流利的 nhibernate 3.1 映射到旧数据库。我有两个班级,想将 B 加入 A。数据库结构没有外键。

AModel.OccurrenceNumber 和 BModel.OccurrenceNumber 具有相同的数据(即在一个和另一个中声明 #1234),只是不同的列名。是否可以在映射阶段加入?如果需要,我可以编写一个 linq 语句来加入他们,但想知道是否可以在这里完成。提前致谢。

0 投票
1 回答
5402 浏览

cakephp - cakePHP表加入两个表问题

我是 cakePHP 新手,整个表关系的概念非常混乱!

我有 2 张桌子、能力和能力评级。能力存储带有 id 的名称列表。

用户可以从该表中选择各种能力并对其进行评分,并将其评分存储在 CompetencyRatings 表中。

我希望能够获得用户没有对competitionRatings 表进行任何评级的能力名称。即,我需要能力表中的名称列表,其中 comptenceRatings 表中没有条目(对于给定的 user_id)。

我尝试了能力->hasMany->competenceRatings,competenceRatings->belongsTo->competencies 关系。

但是没用!

这个结果是否需要任何其他关系?或者我可以在查找查询中使用连接条件连接表吗?

谢谢。

编辑

这种方法有效:

0 投票
1 回答
312 浏览

php - 在 PHP 中使用 Onclick 函数加入 2 个表

我有一个 2 下拉列表,其中包含 Postgres 数据库的表名。现在我有用户选择后的 JOIN 表。在这里,我为下拉列表实现了一个代码。

测试.php

现在我有来自级别的 JOIN 表和来自参数的表。下拉列表中的表格是

如何在运行时加入上述表格,我必须以表格形式显示它。我没有得到如何实时对 onclick 函数进行 JOIN 查询。任何人都可以帮助形成这一点。提前致谢。 在此处输入图像描述

0 投票
2 回答
4990 浏览

sql - 在 SQL 中加入后计算具有相同值的行

如何添加一列来显示两列中具有相同值的总行数,并且已经连接了多个表。在所有连接和 where 语句之后,我最终得到一个包含以下列的表:

产品 | 保单编号 | 行号 | 背书名称

表中有更多列,但这些是我需要参考的。从产品到保单编号存在一对多关系,从保单编号到行号存在一对多关系,从行号到背书或没有匹配关系可能存在一对多关系。

这是查询现在的样子:

结果表看起来像这样

我需要做的是计算每条政策线的背书数量。在上面的示例中,我会看到对于产品 CH,具有多个背书的唯一行项目是策略 8001 - 第 3 行。对于产品 PP,唯一具有多个背书的行项目是策略 9002 - 第 2 行。

我想要的第一件事是一个新列,它显示每一行的计数,显示该行的相同 Policy 和 Line 值的出现总数。该表将如下所示:

在我成功实现此计数后,我想要一个单独的查询,该查询仅返回包含没有任何具有多个背书的行的策略的行,因此在这种情况下,策略 8001 和 9002 不会出现。

我已经尝试过在不同的帖子中看到的各种不同的东西,并适应了我的需求,但还没有找到适用于这个特定示例的解决方案GROUP BYHAVING请记住,我也已经有很多WHERE陈述和一些订购依据。

编辑: 我正在使用 Microsoft SQL Server Management Studio 2010 来执行这些查询

谢谢!

0 投票
1 回答
565 浏览

asp.net - 如何从具有外键 Asp.Net 的连接表中删除记录

我正在尝试从连接其他两个表的表中删除一条记录,似乎外键关系可能会阻止此操作的发生。

请记住,在数据库中没有强制执行外键约束,并且没有抛出足够奇怪的错误。它根本不会删除记录。此外,我可以轻松地从不是连接表的表中删除其他记录。

我使用的当前框架是 Asp.Net MVC2,但由于我也尝试使用 SqlCommand 对象删除它,但它没有工作,我没有将其归因于框架。需要注意的一点是,如果我通过存储过程执行此操作,或者如果我在 SQL Management Studio 中执行查询,它确实有效。此外,该应用程序当前与数据库不在同一台服务器上。

这里有什么想法吗?

提前致谢。