gpt4 book ai didi

mysql - 如何与数据库表(sql 和 phpmyadmin)建立关系,使其对于每条记录(PK)都是唯一的?

转载 作者:行者123 更新时间:2023-11-29 12:23:05 27 4
gpt4 key购买 nike

我有4张 table

  1. 学生
  2. 大学
  3. 学位
  4. 类(class)

学院和学位与学生相关

表格类(class)(科目)与学位//每个学位的特定类(class)相关

我想要一个新表,可以在其中保存学生的成绩,以便每次在学生表中创建新记录时,都会创建一个唯一的学生成绩表(与类(class)相关)。

我尝试在类(class)表中为其创建一个字段,但每次我通过 SQL 命令更新学生的成绩时,在我看来,成绩都是共享的。

就像“学生(许多) ->类(class)(许多) -> course_grade(1,共享)”。我说得有道理吗?

我希望每个学生的 course_grade 都是唯一的。仅使用 phpmyadmin 就可以实现这一点,还是我需要编程(PHP,因为这是基于网络的)干预并为创建的每个学生记录创建一个表?

如何实现我想要的?

最佳答案

不知道我是否正确理解了你的问题,但你绝对不能为每个学生创建一个表。

如果你想存储每个学生在每门类(class)中的成绩,你必须创建一个关系表,其列就是:学生、类(class)、成绩

这样,每次您想要保存学生的成绩时,只需使用其 ID、类(class) ID 和成绩(整数、枚举或其他)在该表中进行插入即可。

在此表中进行选择以获得学生的成绩。加入“学生”表以获取他们的姓名等。

编辑主/外键:

主键是使每个条目“唯一”的列。例如,在表“student”中,您可能有一个“id”或“student_id”列,也许使用 auto_increment,这应该是您的主键(显然每个表只能有一个)。

另一方面, 外键是一种告诉 MySQL 两个不同表中的两列代表相同事物的方法。但这不是强制性的,而是“只是”良好的做法。在您的情况下,这个新表应该有一个外键:

  1. student 引用student.id(表“student”的主键)
  2. 引用 course.id 的类(class)(表“course”的主键)

创建外键不是必需的,而是良好(且常见)的做法。这样,如果您尝试在表中保存一行,而该行的学生 ID 不存在于表“student”中,则 MySQL 将抛出错误。

我建议你阅读一下外键、主键、索引等概念。比如W3school:http://www.w3schools.com/sql/sql_foreignkey.asp

关于mysql - 如何与数据库表(sql 和 phpmyadmin)建立关系,使其对于每条记录(PK)都是唯一的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28744929/

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