BOP - The Future of Creative Engineers -


← ホームに戻る

🧩 グループ企業で考えるSQLAlchemyのリレーション

ORMのリレーションは、グループ会社や親子会社の契約関係に例えると、とてもイメージしやすくなる。


🔗 ForeignKey:個別契約書(子会社が親会社と交わす一方的な契約)

company_id = Column(Integer, ForeignKey('companies.id'))

🔗 relationship():業務連携を示す社内の通達

company = relationship("Company")

🔁 back_populates:お互いに交わす正式な双方向契約書

# 親会社側
subsidiaries = relationship("Subsidiary", back_populates="parent")

# 子会社側
parent = relationship("Company", back_populates="subsidiaries")

📝 backref:覚書のような一方的メモ書き

parent = relationship("Company", backref="subsidiaries")

📌 まとめ表

ORM構文 ビジネス比喩 特徴
ForeignKey 子会社が提示する親会社との契約書 DBに明示する関係。片方向。
relationship() 社内通達(アクセスリンク) アプリ内の便利機能。
back_populates 相互に押印された正式な契約書 双方向に明示された関係。
backref 自動生成された覚書 片方の定義からもう片方に自動生成。