我想設計一個數據庫爲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. 多版本實體數據庫設計
- 2. 數據庫設計 - 關聯實體
- 3. 數據庫設計-relation實體之間
- 4. 數據庫結構,多個實體的一個大實體
- 5. 數據庫設計:序集
- 6. 數據庫設計:大表vs查詢數據中每一行的實體表
- 7. 數據庫設計 - 多個實體的類似聯繫信息
- 8. 從數據庫加載大數據集。實體框架數據庫第一
- 9. 數據庫設計加速休眠查詢大數據集
- 10. 數據庫設計:實現同一個實體的幾種類型
- 11. 關係數據庫設計 - 爲支付類型創建一個實體類?
- 12. 用戶媒體的數據庫設計
- 13. 數據庫設計的實體框架中的導航屬性
- 14. 實體和實體屬性。有效搜索的數據庫設計
- 15. 大型表格的數據庫設計
- 16. 爲cms設計數據庫
- 17. 爲ACL設計數據庫
- 18. 數據庫設計:每種實體類型的一組表格或所有實體類型的通用集合
- 19. symfony2中的實體和數據庫設計
- 20. 數據庫設計 - 鏈接相同實體的多對多表?
- 21. 具有循環關係的數據庫實體模型設計
- 22. 支持動態實體的數據庫設計
- 23. 數據庫設計的實體,具有許多選項
- 24. 如何設計數據庫中的類似實體
- 25. 設計與實體關係的數據庫
- 26. 相當大(400k)mysql數據庫設計爲多個用戶
- 27. 設計一個具有多個屬性值的數據庫實體
- 28. ASP.NET MVC 3與實體框架設計
- 29. 域驅動設計中的每個根集合實體的一個存儲庫
- 30. ASP.NET MVC數據實體設計
您可能需要使用轉換表,只有有外鍵的實體表... –
@UsagiMiyamoto啊...我想生根粉,太多...但不會意味着該表將太大,因此可能導致查詢性能低下。 –
[_提示許多:許多映射表_](http://mysql.rjweb.org/doc.php/index_cookbook_mysql#many_to_many_mapping_table) –