- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在关系模型中有以下关系(表)
Person
person_id, first_name, last_name, address
Student
person_id, matr_nr
Teacher
person_id, salary
Lecture
lecture_id, lect_name, lect_description
Attendees
lecture_id, person_id, date
我想知道 Student 和 Teacher 的函数依赖关系。
这些表格是否符合第三范式?哪些应该是这些表的主键?
最佳答案
使用“表继承”(松散地)和连接表等概念,我会以这种方式进行设置:
Person
person_id, first_name, last_name, address
Student
student_id, person_id, matr_nr
Teacher
teacher_id, person_id, salary
Lecture
lecture_id, teacher_id, lect_name, lect_description, date
Attendees
lecture_id, student_id
Student 和 Teacher 表从 Person “继承”,而 Attendees 表是 Lecture 和 Student 之间的一个 Join 表(teacher_id 在 Lecture 表中用于指定谁在教课。通过 Join 表最佳实践,该表实际上应该命名为 Lecture_Student 或类似名称)
替代设计:(允许一个类(class)的多名教师)
Person
person_id, first_name, last_name, address
Student
student_id, person_id, matr_nr
Teacher
teacher_id, person_id, salary
Lecture
lecture_id, lect_name, lect_description, date
Lecture_Student
lecture_id, student_id
Lecture_Teacher
lecture_id, teacher_id
关于sql - 数据库设计——它是否尊重 3rd NF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3016651/
在 WSL2 中运行 docker info(在 ArchWSL 和 Ubuntu 20.04 上)我收到以下警告: WARNING: bridge-nf-call-iptables is disab
在一本在线 awk 手册中我找到了例子awk '{ if (NF > max) max = NF } END { print max }' 该程序打印任何输入行上的最大字段数。但我不明白 awk 如何
我有 NC_042565.1 1 1 0 0 1 0 0 1 0 0 0 0 8 3 0 0 0 0 0 0 0 0 0 NC_042565.1 2
我有 NC_042565.1 1 1 0 0 1 0 0 1 0 0 0 0 8 3 0 0 0 0 0 0 0 0 0 NC_042565.1 2
我试图了解两个命令之间的区别是什么(我期望两个命令有相同的结果): 案例一 echo 'one,two,three,four,five' |awk -v FS=, '{NF=3}1' one two
我有这样一个文件: ID1 as;uh;2 ID2 uh;3 jk PASS ID3 PASS ID4 as;uh;PASS kk;3 rt ID5 as ID6 PASS PASS uh 3;4 I
我试图在 $NF 之前打印参数.然而$NF--没有用。解决这个问题的方法是什么?问题是,我不知道我得到了多少参数,所以我总是需要 $NF和之前的arg。 亲切的问候 于尔根 host -t ptr 1
我编写了一个程序,用于读取用户输入的文本文件,文件内部包含 .br 、 .sp 和 等格式化功能.nf. .nf 表示不填充,也意味着当您在 .nf 之后看到任何格式化功能时,它们都应该被忽略,并且应
我有一个数据库,用于存储射击游戏的结果。我将它们放入 3NF 以允许系统扩展。所以它看起来像这样: Player ------------------- GameId integer PlayerId
我有以下文件: cat testing.txt ============== line1 1 line2 2 2 line3 3 3 line4 我可以理解 awk 'NF > 0' testing.
我对以下内容有些困惑: $ echo foo bar baz | awk '{printf "%d:", NF--; print NF}' 3:2 $ echo foo bar baz | awk '
我读了一些教程,但我不明白如何链接各种 promise 来读取文件,但一个接一个,我认为这非常简单,但我不明白。 其想法是打开一个文件,读取另一个文件的文件名,打开该文件,然后启动 Express 服
以下有什么区别 NumberFormat nf = NumberFormat.getInstance(); 和 NumberFormat nf = new NumberFormat() 为什么我们需要
美好的一天! 我是创建数据库的新手...我需要为我的招聘网络应用程序创建一个数据库。 我的数据库架构如下: 注意:我在其他表中包含了申请人 ID...例如考试、面试、考试类型。 我是否违反了任何规范化
我在关系模型中有以下关系(表) Person person_id, first_name, last_name, address Student person_id, matr_nr Teac
我查看了一些重要的论坛,例如 SMF 论坛、PhpBB 或 VBulleting 论坛,我意识到它们不在 3rd FN 中。 他们有很多 NULL 字段,例如,在 SMF 论坛中,成员行可以将所有这些
我需要从文件中的每条记录中获取最后 4 个唯一值。文件以逗号分隔,不同记录的列数可以不同。我的输入文件。 $ cat last_cols.txt F F,B F,B,A F,B,A,F F,B,A,F
我正在阅读 The UNIX Programming Environment 和第 4.4 节,关于 awk,有这个示例代码: awk ' FILENAME != prevfile {
我有一些关于 DB2 NF 模式的客户问题。谷歌对此知之甚少。 我已经能够 推断 以下,但我并不完全相信它...... NF 和 CM(兼容模式)是大型机上 DB2 v8 上的设置。 CM 中 z/O
我正在尝试优化一个旨在获取大型数据集的库,并且 然后对其应用不同的操作。现在图书馆正在工作,我想要 来优化它。 我的印象是非严格评估允许 GHC 组合操作,以便数据只迭代一次 编写函数的顺序,以便对参
我是一名优秀的程序员,十分优秀!