现在我的网站有 40 多个表,但我认为我使用 MySQL 的功能并不完全正确。我正在制作一个类似于 Moodle 的网站。它基本上只是为按课程分组的学生举行考试。
原始表:
courses - Lists all courses (ID, Name)
c_$id - Lists all the Tests (ID, Name, etc) for course number $id
a_$id - Lists all questions for the test number $id (Question, A, B, C, D)
g_$id - Lists all grades for the course with course number $id.
c_a - Lists course ID and assignment ID pairs ex: (1,2) (1,3) (2,2) (2,3)
表格修订版 1:
courses - Lists all courses (ID, Name, etc)
tests - Lists all tests (ID, Name, etc)
questions - Lists all questions from all tests (ID, Ques, Ans)
grades* - Lists all grades (studentID, courseID, testID, grade)
students* - Lists all students and their courses (StudentID, courseID)
Grades* 表,它基本上是 3 个主键和一个值。这似乎有些奇怪。有没有更好的办法?学生表也是如此。两者基本上都是其他表的连接。快速搜索的主键是不可能的?
原帖:
重新创建它以利用 MySQL 的强大功能的最有效方法是什么?
截至目前,当创建一门新课程时,它会为该课程创建一个新表 ( c_$id
),然后为每个作业创建一个表和该课程的成绩列表g_$id
。然后在创建作业时,它会创建一个新a_$id
表,将该课程和作业对添加到c_a
.
我已经*
从我的大多数选择语句中删除了“”,并将“ LIMIT 1
”添加到任何选择主键的语句中,接下来是解决这个 OOP 问题。