Вы можете сделать это с тремя полями, диапазоном «ID» и «управляемого идентификатора» (два значения). Эти идентификаторы не основаны ни на чем реальном, они просто описывают иерархию.
Затем, чтобы найти всех управляемых сотрудников, вы выбираете каждый идентификатор в диапазоне «управляемых идентификаторов» менеджера. Диапазон идентификаторов топ-менеджеров охватывает всех, менеджеры под ним охватывают меньший диапазон и т. Д., Вплоть до людей, которые никого не управляют и имеют диапазон, содержащий только себя.
Одна проблема с этим дизайном состоит в том, что когда вы тасуете людей вокруг или добавляете новых людей, вам иногда приходится менять нумерацию всех, чтобы сохранить правильную иерархию. Если вы используете для этого большой интервал идентификаторов, вам не нужно будет перенумеровывать все слишком часто. Или вы можете использовать поля с плавающей запятой.
Редактировать: прочитав другие ответы, я замечаю, что это модель вложенного набора или ее вариант.