S
SteveWalker
Hi,
Quite a complicated problem here, hopefully someone's been doing this kind
of thing before...
I'm writing a system for a college that checks whether the course requests a
student has made are valid, or if they result in timetable clashes. The data
starts off as a list of courses, which I then convert into a table of the form
AdmissionNumber - Index - C1 - C2 - C3 - C4 - C5 - C6 - C7 - C8
where index is a unique integer, and C1-8 are class IDs where the selected
course is taught. This works fine so far. The class IDs are then linked to
PeriodIDs, which describe a timetable period in which the class is taught.
I need to be able to tell the user if there is a valid combination of
classes - i.e. a combination of classes where no two classes are taught in
the same period, and it has to be done as quickly as possible. At the moment
I've got some queries that can do it, but they're taking way to long (over 2
minutes) to check a single student, so I need to cut that time down a lot.
The main problem is the amount of data I'm working with - there can be many
thousands of possible combinations for a student - so any aggregate functions
tend to be very slow. If necessary work can be done on the server in SQL
Server, but I'd prefer to do it locally as many people will be doing this at
once.
Thanks,
Steve Walker
Quite a complicated problem here, hopefully someone's been doing this kind
of thing before...
I'm writing a system for a college that checks whether the course requests a
student has made are valid, or if they result in timetable clashes. The data
starts off as a list of courses, which I then convert into a table of the form
AdmissionNumber - Index - C1 - C2 - C3 - C4 - C5 - C6 - C7 - C8
where index is a unique integer, and C1-8 are class IDs where the selected
course is taught. This works fine so far. The class IDs are then linked to
PeriodIDs, which describe a timetable period in which the class is taught.
I need to be able to tell the user if there is a valid combination of
classes - i.e. a combination of classes where no two classes are taught in
the same period, and it has to be done as quickly as possible. At the moment
I've got some queries that can do it, but they're taking way to long (over 2
minutes) to check a single student, so I need to cut that time down a lot.
The main problem is the amount of data I'm working with - there can be many
thousands of possible combinations for a student - so any aggregate functions
tend to be very slow. If necessary work can be done on the server in SQL
Server, but I'd prefer to do it locally as many people will be doing this at
once.
Thanks,
Steve Walker