问题标签 [junction-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 回答
207 浏览

entity-framework-5 - EF Code First 没有实体的多对多关系

我已经阅读了很多关于如何使用 EF Code First 和流利的配置来配置多对多关系的内容。但我不明白为什么要为联结表创建一个额外的实体。假设我有以下实体:

现在我想保留每个部门的材料记录。所以我需要

到目前为止,我所阅读的内容需要 3 个实体:Department、Material 和 DepartmentMaterial。所以实际上我将每个表映射到一个相应的实体,这在我开始学习 DDD 时并不是我打算做的。我假设 EF 将自动映射该连接表,并且可以在 Department 上完成有关材料数量的查询。

因此,是否可以在 EF Code First 中流畅地配置这种关系而无需额外的实体?

0 投票
1 回答
1101 浏览

sql - SQL Server 中的连接表

我在新数据库中创建联结表时遇到困难。我使用这些查询来创建表:

从那里开始,我很难创建一个引用所有三个表的连接表。三个表中的员工姓名和主管姓名将相同。

0 投票
2 回答
2608 浏览

mysql - 从另一个表中选择带有主键的数据?

我有一个“用户”表、一个“报价”表和一个带有用户 ID 和报价 ID 的联结“*users_offers*”。

如何从属于特定用户的报价中选择每个报价?

我可以实现一个解决方案(如下),它实际上从联结表中开始选择数据,然后简单地连接报价列,但结果也包含联结列。

有没有从优惠开始选择的解决方案?

0 投票
2 回答
872 浏览

mysql - 自动删除连接数据以及删除记录?

我有用户,有优惠,还有一个联结表 users_offers。

是否可以使用外键关系进行设置,以确保在删除任何用户或优惠时自动删除联结数据?

0 投票
1 回答
4380 浏览

forms - 将联结表和查找表与基本 Access 数据库集成

我有一个简单的数据库来存储客户的姓名、城市和州。我已经添加到这两个新表中。一个是查找表,用于描述汽车模型,第二个是连接表,用于设置一个或多个具有客户记录的汽车模型。

这是截至目前的关系布局:

在此处输入图像描述

以及每个表的数据表。 cust_id并且model_id是自动增量列。

人口统计

在此处输入图像描述

查找模型

在此处输入图像描述

junction_model

在此处输入图像描述

使用脚本语言、MySQL 和 HTML,我可以在几分钟内完成一个完整的表单。我很难弄清楚这是如何在 Access 2007 中完成的。

我需要的两个功能是

  1. 能够编辑/添加项目到查找表
  2. 能够添加新的客户记录,包括从查找表中找到的汽车中进行选择,同时保持主键关系。

前任:

“Mary Jane”拥有一辆福特 Pinto 和 Datson 510。当我将她的信息添加到要创建的表单中时,她的 cust_id 将为 5,并且在连接表中将显示两个新条目,她的 cust_id:2(福特) 和 5 (datsun)。

在 Access 2007 中设置此表单是否有相对轻松的方法?

编辑:这是我迄今为止设法开始的工作。此子表单列出了正确的模型/客户关联,但我希望显示一个组合框,其中仅显示 model_desc(而不是模型 ID)。

在此处输入图像描述

0 投票
2 回答
1623 浏览

ms-access-2007 - 通过表单从 Access 联结表中删除行

我设置了一个子表单,列出来自联结和查找表的存储值。这部分运行良好(我可以查看所有存储的条目或添加新条目)。

以下是我的人际关系:

在此处输入图像描述

这是我的表单布局,显示了我尝试删除以前保存的关联的位置。如果我只是删除表单中行的内容,当我尝试保存记录时,Access 会返回:index or primary key cannot contain null value

在此处输入图像描述

从控制台中删除一行的 SQL 很简单:

事实证明,从表单中删除一行并不那么简单。

有没有一种相对简单的方法可以从表单本身做到这一点?

0 投票
1 回答
222 浏览

c# - 在 ASP/C# 网页中从 MS Access 数据库中查询连接表

我正在编写一个 ASP 页面,其中:学生登录 -> 学生到达欢迎页面,带有链接以向他们展示他们已注册的课程 -> 链接页面显示课程信息、描述等。

我的 MS Access 数据库有 3 个表:学生(包含学生信息)、课程(课程信息,如 ID、描述等)和 EnrolledCourses(其中 EnrolledCourses 是一个连接表 - 我认为这是正确的术语 -学生和课程代表学生已注册的课程)。

我需要显示他们注册了哪些课程和课程信息,因此来自 EnrolledCourses 的数据告诉了已注册的课程和来自 Courses 的数据,这些数据提供了课程的详细信息。我在弄清楚查询将是什么来提取该信息时遇到了麻烦。到目前为止,这是我想出的:

只是想知道这是否在正确的轨道上?我不断收到以下编译错误:编译器错误消息:CS1002:;预期的

0 投票
1 回答
2388 浏览

mysql - 没有主键的联结表

假设我有一个联结表来解决两个表之间的多对多关系。我的联结表也有自己的“方法”列来描述关系。 连接表示例

通常,我会创建 [a]、[b] 和 [method] 的复合主键(该方法需要成为使行唯一的一部分),但我的问题是 [method] 字段可以为 NULL。因此我不能将它添加到主键。

所以我所做的是创建一个唯一索引:

该表没有主键。这是一件可以做的事情还是我需要做一些不同的事情?

0 投票
1 回答
4029 浏览

database - 为什么需要联结表来实现多对多关系?

这一直困扰着我,也许有人可以帮助澄清。

假设我有书,有作者:一本书可以写很多作者,一个作者可以写很多书。

为什么我不能使用以下架构捕获它?为什么需要接线表?

0 投票
1 回答
145 浏览

asp.net - 作业网站的数据库架构 - 这是多对多关系吗?

我正在使用通过 Sql Server 2008 创建的数据库创建一个 asp.net 网站(通过 Expression Web 4 和 Visual Web Developer 2010 Express)。但是,我对提供给网站的数据库架构感到困惑。

正在创建的网站是为了允许创建法律案件,记录案件的类型,然后记录律师和/或辩护人和/或支持人员处理案件。

因此,名为“Kramer v Kramer”的案件将是一个离婚案件,由 2 名律师、1 名律师和 4 名支持人员共同处理此案。然而,另一个案件“人民诉拉里弗林特”可能是一个有 4 名律师、没有律师和 10 名支持人员的起诉案件。

到目前为止,我所做的是我有一个名为“案例表”的表,其中包含以下列:

Case_ID(这是表的主键);Case_Type_ID;律师_ID;Advocate_ID 和 Support_Staff_ID。案例表中的最后 4 列是外键。

Case_Type只有两列:“Case_Type_ID”(PK)和“Area_of_law”。Case_Type_ID 只是数字 (001,002...),“Area_of_law”是 char(30)(例如诉讼、离婚、财产、刑事)。到现在为止还挺好。

问题是(这适用于倡导者和支持人员),如果我创建律师表以仅包含三列:

Columns = Lawyer_ID(作为主键)| 名字 | 姓

记录 1 = 001 | 汤姆 | 汉克斯

记录 2 = 002 | 汤姆 | 巡航

记录 3 = 003 | 丹尼尔 | 克雷格

记录 4 = 004 | 妮可 | 基德曼

然后我如何为案件分配多名律师?

Case Table中,为了符合规范化规则,大概我需要如上所述向Case Table添加列,以便记录 Lawyer_ID_1 (FK)| Lawyer_ID_2 (FK)| Lawyer_ID_3 (FK) | Lawyer_ID_4 (FK)。

所以它可能是 004 | 002 | 空 | Null 显示妮可基德曼和汤姆克鲁斯正在处理此案。如果我只有一个 Lawyer_ID 列,为了显示 Nicole Kidman 和 Tom Cruise 正在处理此案,它必须是“004,002”,这是我在这个网站上读到的一个很大的禁忌。

通过将所有律师记录在一个单独的表中,我可以在visual web developer 2010 express 中创建一个数据绑定复选框列表(绑定到律师表),因为它使用律师姓名填充列表。所以我对这种方法很满意。

但是,如果在Lawyer Table中有 50 位律师,我需要在Case Table中分配 50 列仅分配给律师(如果一个案例最终有 50 位律师在处理它)。这种方法是有问题的,因为如果律师被删除或添加,因为律师列的数量受到影响,案例表可能会出现偏差。显然这是一个不好的方法,所以有人可以帮忙吗?

是否有一种数据库模式允许一个“案例”记录与多个“律师”记录相关,而不需要很多列?(希望该模式也可以应用于Support Staff TableAdvocate Table)。

您的帮助将不胜感激。我是 web 开发和 sql 数据库工作的新手,我试图查找解决方案,但我可能不知道我的问题的关键字。