问题标签 [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.
ruby-on-rails-3 - Rails:连接表中两个属性的唯一性导致 500 错误
我有以下模型,它们基本上试图表示教授具有特定水平的许多科目的知识。科目是固定的,因此不会创建新科目,只会通过知识连接表与教授“相关”。
我想要一个表格,让教授在他的帐户中添加一个主题,我决定有一个知识表格(因为我也希望能够插入一个级别)。
它看起来像这样:
在知识控制器的创建操作中,我有这个:
我想/期望得到一个ActiveRecord说这个知识不能被插入,因为有一个唯一性违规,但是不,我只是在日志中看到一个 500 和一个回滚,但似乎执行仍在继续。所以我的问题是:我做错了什么,或者我该如何改善这种建模情况?我相信表单需要与连接模型相关,因为我希望在其上包含该模型的字段......但也许我错了,我可以用一种简单/更清洁的方式来做。
编辑:
正如其中一条评论所要求的,这里是表单提交的日志和回滚后的 500 错误:
我在创建操作中添加了一些条件,如下所示:
这实际上在 500 之后显示以下内容:
我想知道为什么会引发异常,而不是仅仅将错误添加到对象中并让我管理这种情况。以下行不应该做什么?
mysql - 如何填写联接表?
我是 mySQL 的新手。我从两个表创建了一个连接表:
学生应在我的网站上填写表格并提供他的姓名和作业说明。据我所知,然后我会在我的 php 代码中查询数据库,并将 student.name 和 homework.description 插入到相应的表中。但是我应该如何填写 student_homeworks 表?我应该再次查询这两个表并找到 ID,然后填充连接表吗?(我用谷歌搜索但刚刚发现如何创建连接表和 SQL JOIN 命令)
java - Java Hibernate 注解(@JoinTable、@Filter)
我最近开始使用 Hibernate,并试图了解所有注释并确保我做事正确。我有两个类似于下面的表'user'和'user_friends'
和用户朋友表
现在在 SQL 中,我运行了一个看起来类似于
我在 Java 设置中有两个类,其方式与此类似
我之前问过这个问题,但仍然无法按照我的意愿进行工作。我需要能够返回一组 UserBuddy.class,其中包含该好友的姓名和电子邮件,没有其他内容,而不是他们的注册时间等(通过使用 User 类进行映射)。我也很难确保它只返回接受请求的好友(ACCEPTED=1)
任何人都可以提供任何建议吗?
hibernate - @OneToMany @JoinTable 和更新操作的休眠问题
我遇到了一个有点奇怪的问题;我有以下 JPA 映射:
和:
我正在做一个简单的测试:
- 坚持一个具有一些属性的位置
- 更改这些属性之一的名称
- 将位置合并回来(使用更改后的属性)
我的期望(考虑到传播)是合并位置只会传播到属性,属性会得到更新。这种情况(广泛)发生 - 已更改的 Attribute 的值确实已更新,但随后在已存在映射的 Join Table 中尝试新的 INSERT。由于这个新的和不必要的插入,失败(如预期的那样)是:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1-1' for key 'PRIMARY'
现在,罪魁祸首似乎是方式hashCode
并equals
已实现 - 似乎,当 Hibernate 持久化属性集时,集合持久化器检查是否需要插入每个条目(每个属性):
if ( collection.needsInserting( entry, i, elementType ) )
因此,由于其中一个属性的名称确实发生了变化,现在这被认为需要插入(这并不正确 - 不需要插入,只需更新) - 因此在连接表中插入操作。我当然可以将 id 用于 equals 和 hashcode,但这不是 Hibernate 推荐的方式,我也不想这样做。我是否在映射中遗漏了可能导致此问题的某些内容?这是一个非常标准的映射 - 简单的一对多和简单的合并操作 - 有什么建议可以让它工作吗?
任何帮助表示赞赏。
谢谢。
欧根。
sql - 在数据库架构中加入表?
我一直在研究一个数据库应用程序(Access 2007)并且有几个关于架构的问题。这是迄今为止我编写的最复杂的应用程序。
我目前有 5 个表,每个表都有自己唯一的 ID 字段:
- 平台
- 车辆
- 手册
- 程序
- 故障
同一个故障可能出现在多个程序中,同一个程序可能出现在多个手册中。我想为用户提供复制和删除记录的机会,以及表之间的交叉链接记录。
目前,我在上面列出的每个表之间都有连接表,
- 平台_车辆
- 车辆手册
- manuals_procedures
- 程序故障
编辑主表之间的关系(通过编辑连接表的内容)变得相当复杂,因为复制和删除操作对其他表有级联影响。在我看来,这可以使用递归有效地执行,但实际上让它工作完全是另一回事。
问题 #1:我描述的架构是安排这些数据的“好”方式,还是不必要地复杂?(我有这样做的习惯。)
问题 #2:是否有“首选”方法来执行此操作?
问题 #3:我最好以不同的方式组织表格,例如:
只有5张桌子,
- 平台
- 车辆
- 手册
- 程序
- 故障
每个表都有一个用于其内容字段的键,以及另一个表示其在下一个更高表中的父记录的键。例如,
- 平台
- 平台ID、平台名称
- 车辆
- 平台ID、车辆ID、车辆名称
- 手册
- 车辆 ID、手册 ID、手册名称
- ...
这对我来说似乎更简单,当然也不那么复杂。如果大家愿意提供一些专业的反馈,我将不胜感激。
谢谢!
c#-4.0 - 使用 Fluent nHibernate 连接具有不同列名的两个表
我正在使用流利的 nhibernate 3.1 映射到旧数据库。我有两个班级,想将 B 加入 A。数据库结构没有外键。
AModel.OccurrenceNumber 和 BModel.OccurrenceNumber 具有相同的数据(即在一个和另一个中声明 #1234),只是不同的列名。是否可以在映射阶段加入?如果需要,我可以编写一个 linq 语句来加入他们,但想知道是否可以在这里完成。提前致谢。
cakephp - cakePHP表加入两个表问题
我是 cakePHP 新手,整个表关系的概念非常混乱!
我有 2 张桌子、能力和能力评级。能力存储带有 id 的名称列表。
用户可以从该表中选择各种能力并对其进行评分,并将其评分存储在 CompetencyRatings 表中。
我希望能够获得用户没有对competitionRatings 表进行任何评级的能力名称。即,我需要能力表中的名称列表,其中 comptenceRatings 表中没有条目(对于给定的 user_id)。
我尝试了能力->hasMany->competenceRatings,competenceRatings->belongsTo->competencies 关系。
但是没用!
这个结果是否需要任何其他关系?或者我可以在查找查询中使用连接条件连接表吗?
谢谢。
编辑
这种方法有效:
php - 在 PHP 中使用 Onclick 函数加入 2 个表
我有一个 2 下拉列表,其中包含 Postgres 数据库的表名。现在我有用户选择后的 JOIN 表。在这里,我为下拉列表实现了一个代码。
测试.php
现在我有来自级别的 JOIN 表和来自参数的表。下拉列表中的表格是
如何在运行时加入上述表格,我必须以表格形式显示它。我没有得到如何实时对 onclick 函数进行 JOIN 查询。任何人都可以帮助形成这一点。提前致谢。
sql - 在 SQL 中加入后计算具有相同值的行
如何添加一列来显示两列中具有相同值的总行数,并且已经连接了多个表。在所有连接和 where 语句之后,我最终得到一个包含以下列的表:
产品 | 保单编号 | 行号 | 背书名称
表中有更多列,但这些是我需要参考的。从产品到保单编号存在一对多关系,从保单编号到行号存在一对多关系,从行号到背书或没有匹配关系可能存在一对多关系。
这是查询现在的样子:
结果表看起来像这样
我需要做的是计算每条政策线的背书数量。在上面的示例中,我会看到对于产品 CH,具有多个背书的唯一行项目是策略 8001 - 第 3 行。对于产品 PP,唯一具有多个背书的行项目是策略 9002 - 第 2 行。
我想要的第一件事是一个新列,它显示每一行的计数,显示该行的相同 Policy 和 Line 值的出现总数。该表将如下所示:
在我成功实现此计数后,我想要一个单独的查询,该查询仅返回包含没有任何具有多个背书的行的策略的行,因此在这种情况下,策略 8001 和 9002 不会出现。
我已经尝试过在不同的帖子中看到的各种不同的东西,并适应了我的需求,但还没有找到适用于这个特定示例的解决方案GROUP BY
。HAVING
请记住,我也已经有很多WHERE
陈述和一些订购依据。
编辑: 我正在使用 Microsoft SQL Server Management Studio 2010 来执行这些查询
谢谢!
asp.net - 如何从具有外键 Asp.Net 的连接表中删除记录
我正在尝试从连接其他两个表的表中删除一条记录,似乎外键关系可能会阻止此操作的发生。
请记住,在数据库中没有强制执行外键约束,并且没有抛出足够奇怪的错误。它根本不会删除记录。此外,我可以轻松地从不是连接表的表中删除其他记录。
我使用的当前框架是 Asp.Net MVC2,但由于我也尝试使用 SqlCommand 对象删除它,但它没有工作,我没有将其归因于框架。需要注意的一点是,如果我通过存储过程执行此操作,或者如果我在 SQL Management Studio 中执行查询,它确实有效。此外,该应用程序当前与数据库不在同一台服务器上。
这里有什么想法吗?
提前致谢。