gpt4 book ai didi

sql - 数据库设计——它是否尊重 3rd NF?

转载 作者:搜寻专家 更新时间:2023-10-30 22:21:33 24 4
gpt4 key购买 nike

我在关系模型中有以下关系(表)

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com