В моей структуре базы данных много связей один ко многим. Например, у вас есть пользователь, у него много степеней, у него много электронных писем, у него много контрактов и т. Д.
Я узнал об этой функции "select-related ()" в наборе запросов Django, она кажется великолепной. Однако он не идет «назад», он работает только тогда, когда у таблицы, с которой вы начинаете, есть внешние ключи ко всем остальным таблицам, но если это один ко многим, вы не будете хранить все внешние ключи у пользователя. Таблица.
Итак, мой вопрос, есть ли способ, которым я могу,
- Хит базы данных один раз
- По-прежнему можно использовать красивую объектно-ориентированную модель Django, в идеале что-то вроде user.degree [0] .school_name - это было бы здорово.
Любая помощь будет принята с благодарностью!
Редактировать 1: хм, на самом деле, я только что понял, что технически таблица пользователя НЕ содержит никакой степени имени поля. Единственный способ узнать, что степень связана с пользователем, - это просмотреть таблицу степеней и найти внешние ключи пользователя. Таким образом, в некотором роде это похоже на представление базы данных ...
Редактировать 2: Я полагаю, вы могли бы просто создать представление в базе данных с большим количеством JOIN и создать модель в Django для отражения этого представления, верно? Просто нужно выяснить, как все разные базы данных обрабатывают INSERT / UPDATE / DELETE в представлении ... не уверен, что список есть, я сейчас использую postgresql.