有关构建数据库表的建议

时间:2012-03-17 23:42:14

标签: mysql database

在做了一些研究后,我需要一些建议。这是一个小项目,允许教师在线发布作业,学生可以查看/提交这些作业。

学生可以分配多门课程,所以我的问题是:设置表格的最佳方法是什么?

示例1:

student         courses

John Smith      Math, Chemistry, English
Mary White      Math, Biology

示例2:

course          students

Math            John Smith, Mary White
Biology         Mary White
Chemistry       John Smith
English         John Smith

如果这是一个noobie问题,我提前道歉,但我想避免从一开始就做错事,我愿意接受任何建议!

感谢您的时间。

1 个答案:

答案 0 :(得分:2)

通常不适合在关系数据库的列中放置多个项目。所以创建一个这样的表:

course          student

Math            John Smith
Math            Mary White
Biology         Mary White
Chemistry       John Smith
English         John Smith

然后,您可以在JOIN表达式中使用此表来检索所需的信息。您可能希望有其他表格来描述有关课程和学生的基本信息。类似的东西:

course          instructor          time

Math            Albert Einstein     10:30

student         id_number           phone

John Smith      1234-5678           555-1212

......或者您需要保留的关于课程和学生的任何信息。