前两个表是信息表,一个存储学生信息,一个存储老师信息。这个两个表的关系表就是第三个表,班级表。你的班级表中少一个学生id。
班级表的含义就是 哪一个学生属于这个班级,这个班级的老师是哪一个,这里只需要存储一个id信息就行,记录信息通过id去 学生信息表和老师信息表查询。这样就把这三个表关联起来了,明白了么。
班级表的含义就是 哪一个学生属于这个班级,这个班级的老师是哪一个,这里只需要存储一个id信息就行,记录信息通过id去 学生信息表和老师信息表查询。这样就把这三个表关联起来了,明白了么。
宿舍表:ID,名字,其他
班级表:ID,名字,其他
假设学生与上述三者都是一对一,即一个学生只能有一个宿舍,老师,班级,反过来都是一对N,即一个班级表有多个学生。
学生表:ID,名字,其他,老师ID,宿舍ID,班级ID
以上四表ID均为主键。
学生表的三个外键对应三表主键,即可联表。
通常来说还应有个课程表。
课程表:课程ID,名字,其他
课程-老师-学生为1-1-N关系。
课程-老师-学生关系表:课程ID,老师ID,学生ID,其他。
这个关系表的主键为前三个字段。
这个字段还是去除吧,留着它你还得写代码去维护,用的时候计算出来就可以了。另外学生、老师、班级的关系也是这样,不建议在库中直接保存学生和老师的关系,这个是可以通过学生-班级-老师来查询的,你如果维护了在学生转班、老师更换班级等操作时又要多维护一批数据,且维护出错的情况下可能会出现一些很怪异矛盾的统计结果。
那 crenshu number(10),--班级人数 有什么意义呢