Во многих отношениях я пытаюсь решить проблему, в которой мне нужно найти наименьший набор элементов из первой таблицы, который обеспечивает покрытие для произвольного набора выбранных элементов из второй таблицы.
Например, представьте:
Учитель (TeacherID)
Класс (ClassID)
TeachClassXref (TeacherID, ClassID)
Если студенту необходимо учиться: 34,45,53,56,44,77,23,654,667
Как определить наименьший набор идентификаторов TeacherID, который будет преподавать в этих классах?
(Также подлежит определению: в случае, когда полное покрытие не может быть достигнуто, классы выброса не имеют общего учителя.)
Или используя терминологию из другого домена (но точно такую же структуру таблицы):
Действия и роли: если мне нужно выполнить действия 1,3,6,7,9,33,45, к какой роли или набору ролей мне нужно принадлежать?
(я уверен, что для этой проблемы должно быть название, но мой гугл-фу меня подводит.)