Скажем, у меня есть три таблицы: people
, companies
и countries
. people
имеет столбец employer
, который указывает на строку в companies
, которая имеет строку home_country
, которая указывает на строку countries
. С помощью SQLAlchemy я могу представить это так:
class Person(Base):
__tablename__ = "people"
employer_id = Column(String, ForeignKey("companies.id"))
employer = relation("Company", foreign_keys=[employer_id])
... а затем очень похожий класс Company
и, наконец, класс Country
. Если person
теперь является экземпляром Person
, я могу получить страну, в которой они работают, как person.employer.country
. Но что, если мне наплевать на компании? Что если я просто хочу получить страну напрямую? То, что я хочу:
- Иметь возможность получить информацию о стране, в которой работает человек, через
person.country
, которая должна быть экземпляром класса Country
. - Не обязательновообще определить класс
Company
.
Возможно ли это?