学生选题表(sdu_id,ques_id ,指标1,指标2),每个学生选择多到题。
教师出题表(ques_id,tea_id)每个教师出多道题。
教师限制表(tea_id,max)该教师最多指导学生做题数。
要求:
对于选题表先根据指标1,2降序排列。选择该同学指标1,2尽量靠前(因为还要满足该出题教师指导学生的限制)的1道题。还要保证一道题只能由1个同学选择!
由于sql水平有限,正在学习中。希望各位dgdj帮下忙,谢谢了!
教师出题表(ques_id,tea_id)每个教师出多道题。
教师限制表(tea_id,max)该教师最多指导学生做题数。
要求:
对于选题表先根据指标1,2降序排列。选择该同学指标1,2尽量靠前(因为还要满足该出题教师指导学生的限制)的1道题。还要保证一道题只能由1个同学选择!
由于sql水平有限,正在学习中。希望各位dgdj帮下忙,谢谢了!
首先根据对选题表按指标1,2排序。
然后逐行查看每条选题记录:
(1).看该同学是否已经确定出一道题 ,“是” 取下一条记录,“否” 检查(2)
(2).看该题是否已经被一个同学选择,“是” 取下一条记录,“否” 检查(3)
(3).再检查该出题教师指导学生是否达到限制,“是”取下一条,“否” 这该题由当前同学做!
结果 确定出每一个同学选择的题,有可能有的同学不能选到题。结果可以是另外一张表,也可以加一个字段flag标识。
教师限制表:
tea_id max
t1001 2
t1005 2
t1006 1
……
教师出题表:每个教师给出3道题供学生选择
ques_id tea_id
q1001 t1001
q1002 t1001
q1003 t1005
q1004 t1006
q1005 t1001
q1006 t1005
q1007 t1005
q1008 t1006
q1009 t1006
……
学生选题表:根据指标1,2排好序
stu_id ques_id 指标1 指标2
s1002 q1005 99 95
s1003 q1001 99 93
s1001 q1001 95 92
s1003 q1006 94 90
s1004 q1002 92 90
………… 上面记录:
s1002 q1005 99 95 --(1),(2),(3)都满足,则确定他选本题
s1003 q1001 99 93 --(1),(2),(3)都满足,则确定他选本题
s1001 q1001 95 92 --(2)不满足,取下一条
s1003 q1006 94 90 --(1)不满足,取下一条
s1004 q1002 92 90 --(3)不满足,取下一条
……
怎么来实现,各位有什么好的办法?