关系型数据库 多对多关系 三表还是两表 ?
多对多一般都是三张表,两张各自的单个信息表,一张表明关系的连接表。
student//学生基本信息表 id name ...
course//课程基本信息表 id name teacher...
sc//选课表,每一条表明哪个学生选哪一门课, 可以只有两个字段 学生id或学号 课程id或课程号 表id有时候不是信息的id,如学号,方便删除
两张表的多对多会有冗余信息
student//学生基本信息表 id name ...
course//课程基本信息表 id name teacher... stu_id学生id
这样课程表就会冗余学生信息(两条记录同课程信息只有学生id不同),才能表明一堂课多个学生,删除课程信息就会同时删除课程信息科,以及学生课堂关系信息,如果只是删除课程,把以前的选课关系改为新的课就没法做了
三表还是两表看需求