Ck皮带尺寸:CK可以有一个FK引用另一个表中的CK吗

CK 可以有一个 FK 引用另一个表中的 CK 吗?

部门 (部门,部门名称)
员工 (RegNo,FirstName,LastName,出生日期,Dept_fk,薪水,城市)

Dept_name 是 Department 表的 CK。

当 Dept_name 未设置为 Department 表中的主键时,Dept_fk 是否可以是 Employee 中 CK(Dept_fk 、 FirstName 、 LastName 、 Birthdate)的一部分?

0

“给定表的 CK(候选键)”的两个定义是:

表中的列集,在功能上确定每个列,并且不包含较小的此类集。

表中的一个列集,其子行值是唯一的,并且不包含较小的此类集。

如果没有我们正在使用的定义所需的信息,我们就无法确定表的 CK。例如所有 FD(功能依赖关系),或者 FD 的规范覆盖或子行值唯一的所有列集等。该信息始终可以在不涉及另一个表的情况下表示。

我们可以选择一个表的 CK 来调用它的“the”PK(主键)。PK 在关系理论中是不相关的。(如果您使用的是 ER 方法,并且它具有有关 PK 与 CK 的规则,那么您应该引用 & amp;标记它。)

部门不能是 Employee 表中候选键(例如:Dept 、 FirstName 、 LastName 、 Birthdate)的一部分,因为在 Department 表中没有将 Department 设置为主键

部门不是Employee 中,所以它不能是它的 CK 的一部分。但是如果你添加它,它是否是它的 CK 独立于其他表。

如果你问的是你是否可以根据部门 CK 与 PK 之间的区别来做一些事情:PK 总是无关紧要的。

If the“Dept”s are typos for“Dept #”:The merse fact that Dept # is or is not a PK of the Department table has no bearing on the CK of another table.Whether it is a PK vs CK is always relevant.

但是,我仍然可以调用部门候选人键,只是知道部门是部门表中的候选人键?

它是 Department 的 CK。所以在英语中我们可以说它是一个 CK。但是成为一个 CK 就是成为一个特定表的 CK

也许你的意思是“我仍然可以调用 Dept a CK”的 Employee只是知道....“只有当你表明它是一个。

(也许你应该在这个问题中调用一些东西 FKs?)

PS FD A 列可以出现在多个表中,而它们之间没有 FK。(“参考”仅在您谈论 FK 时有用。)不同的列之间可以有 FK。当且仅当一组列中的所有子行值都出现在另一个(“参考”)列中时,才有 FK。SQL FK 只需要转到超键(CK 的超集),而不是 CK。FK 只能是任何集合中的 PK:

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(690)
鲜柚生活小程序:Java小程序 vs应用程序
上一篇
如何将其他磁盘空间分给c盘:GoogleColab磁盘空间与GoogleDrive磁盘空间
下一篇

相关推荐

  • comeandgetyourlove音乐爱就在你身边

    Come and Get Your Love是一首热门的歌曲,由美国摇滚乐队Redbone演唱。这首歌曲于1974年发行,被收录在他们的专辑《Wovoka》中。歌曲以放克曲风为主,旋律活泼,曲调悠扬,歌词朗朗上口,深受歌迷喜爱。…

    2023-06-29 07:47:31
    0 70 94
  • codeblocks无法编译运行:Codeblocks无法编译运行的解决方案

    codeblocks无法编译运行的原因可能有很多,下面以一段简单的C语言代码为例,来说明codeblocks无法编译运行的情况。…

    2023-07-11 08:01:55
    0 43 85
  • gitlab ci 自动化部署:使用 Gitlab CI 自动化部署提升开发效率

    GitLab CI 自动化部署是一种基于 GitLab CI/CD 的自动化部署方案,可以实现快速、可靠的部署流程。它将代码提交、构建、测试、部署等步骤集成在一起,使得开发者可以更加轻松地完成部署工作。下面是一个示例 .gitlab-ci.yml 文件,可以帮助你实现 GitLab CI 自动化部署:…

    2023-05-20 05:45:38
    0 90 50
  • xl和xe汽车cvt:探索XL和XE汽车的CVT技术优势

    XL和XE汽车CVT是一种变速器,它使用液力变矩器代替传统的机械变速器,以达到更高的效率。它的工作原理是,当发动机输出功率时,液力变矩器就会将这些功率转换为液压能量,然后将能量传递到变速器的输出轴上,从而实现变速。…

    2023-05-16 07:36:03
    0 60 24
  • js添加css:This is a Title

    使用js添加css可以通过修改元素的style属性来实现,具体代码如下:…

    2023-05-27 12:30:24
    0 41 59
  • css 字符间距:### 世界上最美的地方

    示例示例CSS 字符间距是指在文本中的字符之间添加间距,以增强文本的可读性。它可以使文本更容易阅读,也可以使文本看起来更美观。代码示例:…

    2023-04-15 08:45:29
    0 26 66
  • git 删除commit记录:回滚Git Commit记录

    git删除commit记录可以使用git reset命令。使用方法:…

    2023-07-07 04:31:44
    0 31 73
  • java实现tcp:使用Java实现TCP网络编程

    TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。它使用三次握手来建立可靠的连接,并且在数据传输期间可以检测丢失的数据包并重新发送。…

    2023-01-31 10:33:14
    0 65 45

发表评论

登录 后才能评论

评论列表(75条)