问题描述
如果我设计错了,请纠正我。我需要设计 3 个表如下:
- 学生:身份证、姓名
- 部分:id、student_id、s_name
- 时间表:id、section_id、c_name
这里是要求: 有学生,每个学生都有部分,每个部分都有时间表。
- 从学生到分区,分区到日程表的关系是一对多
- 学生可以有很多部分
- section 只能有 1 个学生/section 可以有很多时间表
- schedule 只能有 1 个部分
========这里是我的表格:======
-
学生
- id --> 主要和自动增量
- 姓名
-
部分
- id --> 主要和自动增量
- student_id --> 学生表id的外键引用
- s_name
-
时间表
- id --> 主要和自动增量
- section_id --> 对section表id的外键引用
- c_name
我将不胜感激,非常感谢。
解决方法
是的,您的架构似乎是 BCNF 规范化的,但它不满足所有给定的要求。我会更改一些内容以使其更直观。
2. Sections Table:
section_id -> primary,auto increment
student_id -> Foreign Key to students.id
说明:Section ID与student是一对一的,而student与section是一对多的。
3. SectionNames Table:
section_id -> primary and foreign key,from section table.
section_name -> String,name of section.
说明:如果您需要存储 s_name,就像您现在正在做的那样,您可以添加它。
4. Schedule Table:
class_id -> Primary,auto increment key
section_id -> Foreign key,sections table.
说明:附表(班级)与部分的一对一关系,以及部分与班级的一对多关系。
5. ScheduleName Table:
class_id -> Primary,and foreign key to schedule table.
class_name -> String
说明:根据您的表架构存储 c_name。