你觉得我在 mysql workbench 中的 table 怎么样? Linktable?
What do you think of my table in mysql workbench ? Link table?
我正在 Java 中制作一个小程序,如果我将姓名和出生日期放在文本字段中,它会获取学生在学期和考试中的成绩。在我制作的 table 下面,我对 link 这些 table:
有问题
您的数据库结构没有 link 可能性。
没有 table 有一个密钥可以 link 它到另一个 table。
你必须识别一对多和多对多关联,并用适当的方法用键来表达它们。
示例:
我想 table 学生和 table 课程有一个多对多的关系,你应该用 table 来表达:
ideleve | idcourse
您必须在您的结构上计算出所有这些关系才能设计任何查询。
根据您的评论,我更新了答案。实际上我应该投票结束这个问题,因为它太宽泛而且没有过度编码。
问题设置示例:
Each student is identified by:
id | name | surname | born_date
Each course is identified by
id | course_title
Students can enroll in multiple courses
Courses can be held in 1st, 2nd semester or both maintaining the same id and title
There are up to 3 exams per course per semester
Notes of each exam can go from 1 to 5 with 1 being the lowest
Students have to take all the exams, if they do not take an exam their vote is considered 0 for that exam
这可能会导致:
数据库结构
table students
id_student | name | surname
table courses
id_course | course_title
table exams
id_student | id_course | semester | exam | grade
使用您可以从列名中理解的隐式关系。
然后你就可以开始编码了...
但在这里我对学生、课程、考试和监护人及其关系做了一大堆假设!
要设计数据库,需要对实体和关系进行分析。
你想做的程序确实如你所说的很简单,而且这个分析并不复杂,但必须要做,none可以为你做。
根据你最后的评论,最终澄清了你可以做的问题:
数据库结构
table students
id_student | name | surname | birthdate
table courses
id_course | course_title | year | semester
table exams
id_student | id_course | year | semester | test | exam | grade
table 考试示例可以是:
id_student | id_course | year | semester | test | exam | grade
--------------------------------------------------------------
2701 | K409 | 2015 | 1 | 1 | NULL | 4
2701 | K409 | 2015 | 1 | 2 | NULL | 4
2701 | K409 | 2015 | 1 | 3 | NULL | 4
2701 | K409 | 2015 | 0 | NULL | NULL | 3
2701 | K405 | 2015 | 1 | 1 | NULL | 4
2701 | K405 | 2015 | 1 | 2 | NULL | 4
2701 | K405 | 2015 | 1 | 3 | NULL | 4
2705 | K405 | 2015 | 0 | NULL | NULL | 3
2705 | K409 | 2015 | 2 | 1 | NULL | 4
2705 | K409 | 2015 | 2 | 2 | NULL | 4
2705 | K409 | 2015 | 2 | 3 | NULL | 4
2705 | K409 | 2015 | 0 | NULL | NULL | 3
2705 | K407 | 2015 | 2 | 1 | NULL | 4
2705 | K407 | 2015 | 2 | 2 | NULL | 4
2705 | K407 | 2015 | 2 | 3 | NULL | 4
2705 | K407 | 2015 | 0 | NULL | NULL | 3
您可以使用多列键 link 到 exams/test 的课程:
id_course-year-semester
link 学生到 exams/test 有:
id_student
link 学生通过 exams/test table 课程,你有:
id_student | id_course-year-semester
这意味着当学生注册课程时,这样的记录将在 exams/test table:
id_student | id_course | year | semester | test | exam | grade
--------------------------------------------------------------
2701 | K409 | 2015 | 1 | NULL | NULL | NULL
此致
我正在 Java 中制作一个小程序,如果我将姓名和出生日期放在文本字段中,它会获取学生在学期和考试中的成绩。在我制作的 table 下面,我对 link 这些 table:
有问题您的数据库结构没有 link 可能性。
没有 table 有一个密钥可以 link 它到另一个 table。
你必须识别一对多和多对多关联,并用适当的方法用键来表达它们。
示例:
我想 table 学生和 table 课程有一个多对多的关系,你应该用 table 来表达:
ideleve | idcourse
您必须在您的结构上计算出所有这些关系才能设计任何查询。
根据您的评论,我更新了答案。实际上我应该投票结束这个问题,因为它太宽泛而且没有过度编码。
问题设置示例:
Each student is identified by:
id | name | surname | born_date
Each course is identified by
id | course_title
Students can enroll in multiple courses
Courses can be held in 1st, 2nd semester or both maintaining the same id and title
There are up to 3 exams per course per semester
Notes of each exam can go from 1 to 5 with 1 being the lowest
Students have to take all the exams, if they do not take an exam their vote is considered 0 for that exam
这可能会导致:
数据库结构
table students
id_student | name | surname
table courses
id_course | course_title
table exams
id_student | id_course | semester | exam | grade
使用您可以从列名中理解的隐式关系。
然后你就可以开始编码了...
但在这里我对学生、课程、考试和监护人及其关系做了一大堆假设!
要设计数据库,需要对实体和关系进行分析。
你想做的程序确实如你所说的很简单,而且这个分析并不复杂,但必须要做,none可以为你做。
根据你最后的评论,最终澄清了你可以做的问题:
数据库结构
table students
id_student | name | surname | birthdate
table courses
id_course | course_title | year | semester
table exams
id_student | id_course | year | semester | test | exam | grade
table 考试示例可以是:
id_student | id_course | year | semester | test | exam | grade
--------------------------------------------------------------
2701 | K409 | 2015 | 1 | 1 | NULL | 4
2701 | K409 | 2015 | 1 | 2 | NULL | 4
2701 | K409 | 2015 | 1 | 3 | NULL | 4
2701 | K409 | 2015 | 0 | NULL | NULL | 3
2701 | K405 | 2015 | 1 | 1 | NULL | 4
2701 | K405 | 2015 | 1 | 2 | NULL | 4
2701 | K405 | 2015 | 1 | 3 | NULL | 4
2705 | K405 | 2015 | 0 | NULL | NULL | 3
2705 | K409 | 2015 | 2 | 1 | NULL | 4
2705 | K409 | 2015 | 2 | 2 | NULL | 4
2705 | K409 | 2015 | 2 | 3 | NULL | 4
2705 | K409 | 2015 | 0 | NULL | NULL | 3
2705 | K407 | 2015 | 2 | 1 | NULL | 4
2705 | K407 | 2015 | 2 | 2 | NULL | 4
2705 | K407 | 2015 | 2 | 3 | NULL | 4
2705 | K407 | 2015 | 0 | NULL | NULL | 3
您可以使用多列键 link 到 exams/test 的课程:
id_course-year-semester
link 学生到 exams/test 有:
id_student
link 学生通过 exams/test table 课程,你有:
id_student | id_course-year-semester
这意味着当学生注册课程时,这样的记录将在 exams/test table:
id_student | id_course | year | semester | test | exam | grade
--------------------------------------------------------------
2701 | K409 | 2015 | 1 | NULL | NULL | NULL
此致