Вашата задача е класически пример за проблем с топовете .
Не може да бъде решен ефективно в SQL
.
Има някои прости алгоритми, които работят добре, ако има вероятност вашите работници да имат необходимите умения (т.е. неквалифициран работник е по-скоро рядко изключение, отколкото правило).
По-добре обаче използвайте SQL
за възстановяване на ограниченията, т.е. д. кои потребители отговарят (или не отговарят) на кои проекти и ги въвеждат в евристичен алгоритъм.