学生表加上冗余字段 bjmc(班级名称) xymc(学院名称) zymc(专业名称)不必要这么做。 班级,学员,专业这3个表的信息在学生表里存的都是主键ID,联合查询的时候效率很高。直接UNION各个表去取信息就可以了。如果你冗余出名称来,并不能起到效率的提升。 比如要查学院是‘计算机的’, 用冗余字段查询为(传入的条件为字符串‘计算机’) select * from student where xymc='计算机';不用冗余字段(传入的条件为计算机系的ID select * from studnt where xydh=100;很明显下面的效率高。
班级,学员,专业这3个表的信息在学生表里存的都是主键ID,联合查询的时候效率很高。直接UNION各个表去取信息就可以了。如果你冗余出名称来,并不能起到效率的提升。
比如要查学院是‘计算机的’,
用冗余字段查询为(传入的条件为字符串‘计算机’)
select * from student where xymc='计算机';不用冗余字段(传入的条件为计算机系的ID
select * from studnt where xydh=100;很明显下面的效率高。
除了学生表记录有些多之外,其它表的记录过少,根本不会对JOIN查询有多大的影响。所以不需要去添加冗余字段。
适当加上索引即可。
建议查询的时候对sql语句进行优化,比如先过滤数目最大的学生