У меня есть следующая структура:
[Employee]
ID
Manager1ID
Manager2ID
Сценарий:
Я хочу сделать проверку, чтобы убедиться, что выбранный Manager1 или Manager2 не вызывает раунд. Другими словами, я хочу знать, существует ли этот случай:
Менеджер A - это B, а менеджер B - это C, а менеджер C - также A // недействителен
A => B => C => A
Чтобы сообщить пользователю, что A не является действительным менеджером для C , потому что C уже является менеджером A
.
Проблема:
Я хотя бы проверял во время зацикливания менеджеров как родителей в дереве, и когда я нашел выбранного менеджера в списке, я понял, что он недействителен. (Две петли для списков буксировки для Manager1 и Manager2)
Проблема в том, что у каждого сотрудника может быть два менеджера, и в таком случае может существовать раунд:
A => B (Manager1) => C (Manager2) => A
Который не может проверить в моем предложенном решении.
Любая идея!