我想设计一个数据库为3个表:老师,课程,学生。
- 老师可以有很多学生,可以教许多课程。
- 一个学生可以有许多老师和学习许多课程。
- 一门课程可以由许多老师教授,可以招收很多学生。
我希望能够确定哪个学生正在学习哪门课程,并由哪位教师授课。数据库设计为3个强大的实体集
0
A
回答
1
CREATE TABLE student (
id serial PRIMARY KEY,
name varchar(255) NOT NULL,
-- other columns, constraints, etc...
);
CREATE TABLE teacher (
id serial PRIMARY KEY,
name varchar(255) NOT NULL,
-- other columns, constraints, etc...
);
CREATE TABLE course(
id serial PRIMARY KEY,
name varchar(255) NOT NULL,
-- other columns, constraints, etc...
);
CREATE TABLE student_course (
student_id integer NOT NULL REFERENCES student(id),
course_id integer NOT NULL REFERENCES course(id),
);
CREATE TABLE teacher_course (
teacher_id integer NOT NULL REFERENCES teacher(id),
course_id integer NOT NULL REFERENCES course(id),
);
SELECT s.id, s.name, c.id, c.name, .id, t.name
FROM student s
JOIN student_course sc ON s.id = sc.student_id
JOIN course c ON sc.course_id = c.id
JOIN teacher_course tc ON c.id = tc.course.id
JOIN teacher t ON tc.teacher_id = t.id
+0
谢谢,请试试:) –
+0
索引在哪里!! –
+0
@RickJames什么索引? –
相关问题
- 1. 数据库设计-relation实体之间
- 2. 多版本实体数据库设计
- 3. 数据库设计 - 关联实体
- 4. 数据库结构,多个实体的一个大实体
- 5. 数据库设计:序集
- 6. 数据库设计:大表vs查询数据中每一行的实体表
- 7. 数据库设计 - 多个实体的类似联系信息
- 8. 使用实体框架作为数据库设计工具?
- 9. 从数据库加载大数据集。实体框架数据库第一
- 10. 数据库设计加速休眠查询大数据集
- 11. 数据库设计:实现同一个实体的几种类型
- 12. 关系数据库设计 - 为支付类型创建一个实体类?
- 13. 用户媒体的数据库设计
- 14. 数据库设计的实体框架中的导航属性
- 15. 实体和实体属性。有效搜索的数据库设计
- 16. 大型表格的数据库设计
- 17. 为ACL设计数据库
- 18. 为cms设计数据库
- 19. 数据库设计:每种实体类型的一组表格或所有实体类型的通用集合
- 20. 支持动态实体的数据库设计
- 21. 数据库设计的实体,具有许多选项
- 22. 数据库设计 - 链接相同实体的多对多表?
- 23. 如何设计数据库中的类似实体
- 24. 具有循环关系的数据库实体模型设计
- 25. symfony2中的实体和数据库设计
- 26. 设计与实体关系的数据库
- 27. 相当大(400k)mysql数据库设计为多个用户
- 28. 设计一个具有多个属性值的数据库实体
- 29. ASP.NET MVC 3与实体框架设计
- 30. 域驱动设计中的每个根集合实体的一个存储库
您可能需要使用转换表,只有有外键的实体表... –
@UsagiMiyamoto啊...我想生根粉,太多...但不会意味着该表将太大,因此可能导致查询性能低下。 –
[_提示许多:许多映射表_](http://mysql.rjweb.org/doc.php/index_cookbook_mysql#many_to_many_mapping_table) –