mysql - 关于建立数据库表的建议

标签 mysql database

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

学生可以分配多门类(class),所以我的问题是:设置表格的最佳方式是什么?

示例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

如果这是一个菜鸟问题,我提前道歉,但我想避免从一开始就做错事情,并且我愿意接受任何和所有建议!

感谢您的宝贵时间。

最佳答案

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

course          student

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

然后,您可以在 JOIN 表达式中使用此表来检索所需的信息。您可能需要额外的表格来描述有关类(class)和学生的基本信息。像这样的东西:

course          instructor          time

Math            Albert Einstein     10:30

student         id_number           phone

John Smith      1234-5678           555-1212

...或您需要保留的有关类(class)和学生的任何信息。

关于mysql - 关于建立数据库表的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9754779/

相关文章:

php - 如何将带有“(ISO-8859-1)字符的字符串转换为普通(UTF-8)字符?

mysql - 如何在 MySQL 中使用 tag_ids 获取相关问题?

mysql - 使用 CMD 导入 SQL 数据库 - 唯一访问被拒绝错误

database - 如何存储别人的密码?

android - [Android SDK]无法从资源中复制外部数据库(13MB)

database - FILESYSTEM 与 SQLITE,同时存储高达 10M 的文件

MYSQL:将行连接为列

PHP/MySQL 多对多关系——下一步在这里

MySQL根据自定义条件删除重复记录

java - 如何确定 Maven 依赖项的 MySQL/MariaDB 版本?