我有以下情况:学生可以注册更多课程,而且可以注册更多不同的学生。 我应该创建哪些表以及如何正常工作?
答案 0 :(得分:1)
它叫做数据透视表。您只需要参与表中的主键,在SQL中就像这样:
CREATE TABLE student (sid INTEGER PRIMARY KEY, name VARCHAR(100));
CREATE TABLE course (cid INTEGER PRIMARY KEY, desc TEXT);
CREATE TABLE enrollments (sid INTEGER, cid INTEGER, edate DATE, PRIMARY KEY (sid,cid), FOREIGEN KEY sid REFERENCES student(sid), FOREIGEN KEY cid REFERENCES course(cid));
如您所见,您甚至可以向数据透视表中添加更多列,就像我对注册日期所做的那样。
答案 1 :(得分:0)
你应该创建另一个至少包含course_id和student_id的表(关联表)。 这两列是外键,分别引用表课程和学生