tgoop.com/pyproglib/6502
Last Update:
How to: как создать самоссылочную связь через внешний ключ?
Представьте, что вы создаете систему управления сотрудниками в Django. Вам нужно хранить информацию о сотрудниках, и вдруг вы понимаете, что у них есть отношения между собой. Например, у каждого сотрудника есть свой «линейный менеджер» и могут быть «подчиненные».
👨💻 Решение: используйте самоссылочный внешний ключ.
Как это работает:
• Моделируем связь с «линейным менеджером» как внешний ключ, указывая на самого себя (используем self
).
• Используем поле line_manager
, чтобы задать связь «многие к одному» (снизу вверх).
• Обратную связь можно легко получить с помощью поля direct_reports
, которое позволяет найти всех сотрудников, которых управляет данный сотрудник.
👍 Это решение идеально подходит для простых и неограниченно длинных иерархий, как, например, отношения между менеджерами и подчиненными.
👎 Самоссылочные связи могут быть проблемой, если отношения более сложные или имеют заранее заданные уровни.
Библиотека питониста #буст
BY Библиотека питониста | Python, Django, Flask

Share with your friend now:
tgoop.com/pyproglib/6502