Votre tâche est un exemple classique de problème de tours .
Il ne peut pas être résolu efficacement en SQL
.
Il existe des algorithmes simples qui fonctionnent bien si vos travailleurs sont susceptibles d'avoir les compétences requises (c'est-à-dire qu'un travailleur non qualifié est une rare exception plutôt qu'une règle).
Cependant, vous feriez mieux d'utiliser SQL
pour récupérer les limitations, i. e. quels utilisateurs correspondent (ou ne correspondent pas) à quels projets, et alimentez-les dans un algorithme heuristique.