当前位置: 首页 > 知识库问答 >
问题:

外键与主键链接

农存
2023-03-14

关于外键与主键的链接,我有几个问题,请解释背后的原因。他们在下面

  1. 任何外键都可以作为其他外键的主键吗?->;我认为它可以工作,但是外键(充当主键)必须与其主键有1-1的关系,它必须是唯一的并且不是空的
  2. 一个外键可以引用两个或多个主键吗?->;我在stackoverflow上的某个地方读到过一个foeign键引用一个表(一个表有一个主键),但是在任何地方都没有找到合适的解释。

共有1个答案

孟俊晖
2023-03-14

外键和主键是独立的。外键“伸手”到其他表。主键是孤立的,它们描述一个特定的表。

因此,外键总是指向另一个表。在定义外键的表中,外键可以是:

  • 主键
  • 复合主键的一部分
  • 与主键无关

同一表中的两列可以是另一表中同一主键的外键。

你的第二点说不通。主键不引用外键。关系是反过来的。

 类似资料:
  • 我有一个包含数据的表,其中一个行需要存在于另一个表中。所以,我想要一个外键来保持引用的完整性。 但是,正如您所看到的,我的外键所指向的表,列不是PK。有没有一种方法来创建这个外键,或者可能有一种更好的方法来维护这个引用完整性?

  • 问题内容: 我以前认为外键和辅助键是同一回事。 在谷歌搜索结果变得更加混乱之后,一些人认为它们是相同的,其他人则说,辅助键是一个不必唯一的索引,并且与主键相比,它可以更快地访问数据。 有人可以解释其中的区别吗? 还是确实是混合术语的情况? 每个数据库类型是否可能有所不同? 问题答案: Wiki / Foreign_key中的定义指出: 在关系数据库的上下文中,外键是一个表中的一个字段(或字段的集合

  • 本文向大家介绍主键与唯一键,包括了主键与唯一键的使用技巧和注意事项,需要的朋友参考一下 首要的关键 主键是一列,用于唯一地标识表的每个元组。 它用于向表添加完整性约束。一个表中只能使用一个主键。在主键的情况下,重复和NULL(空)值无效。主键也可以用作其他表的外键。 让我们举个例子 我们有一个表名employee,用于存储公司员工的数据。下表显示了该表的内容。 Emp_id 名称 号码 位置 薪水

  • 一开始我尝试过,如下所示,但仍然没有结果: 将两个外键定义为实体框架中的主键 实体框架两个外键作为主键 这是我的实体: 我正在尝试基于两个外键创建主键。有一个错误 EntityType“Passage”未定义键。定义此EntityType的键。 我做错了什么?

  • 如何使用hibernate注释实现下表? 当前代码为:(为简洁起见,已删除) 使用者 社交网络 SocialProfile公司 显然我的代码现在不能正常工作。有人能解释一下吗?

  • 问题内容: 只是为了扩展我以前的问题-我的数据库中有两个表,我想提取某些信息。下表: 您向我提供了以下代码来获取播放器的名称: 效果很好,谢谢-我只想进行两项调整: 我想返回得分手的名字以及球员的名字。由于m.scorer是一个ID,如果p.Name已被映射到m.playerID,我如何将其映射到p.Name属性? 上面的查询返回所有玩家的姓名。我很快就会添加搜索功能,您可以在其中搜索特定玩家的所

  • 假设您有一个表,如下所示: 可以看到列是表的主键和外键。是的,MySQL成功生成了这个表。 问题很简单,我将如何在JPA实体中映射这一点?我是否应该有映射到列的1个id和连接列的另一个字段?欢迎提出建议。

  • 问题内容: 我目前正在为我们团队的项目设计数据库结构。我目前在脑海中有一个非常疑问的问题:能否将外键用作另一个表上的主键? 以下是我们系统的数据库设计表: 我想做的是,该表应包含学生用户和指导顾问用户的ID(应该是系统的登录凭据)和密码。简而言之,和表的主键也是表的外键。但我不确定是否允许。 另一个问题是:一个表中也存在,这需要一个(其为中表)和一个(这也是在)它的每个记录的。如果学生和辅导员的I