User 모델에 대한 관계 정의하기
모델 간 관계는 외래키(foreignKey)와 RelationshipInfo 객체로 표현하고 다룹니다. 둘 다 SQLModel이 제공하는 기능을 이용하면 편리하게 SQLAlchemy 모델의 관계를 정의할 수 있지요.
파이썬 예시 코드
class OAuthAccount(SQLModel, table=True):
__tablename__ = "oauth_accounts"
user_id: int = Field(foreign_key="users.id") # ①
외래키는 Field() 함수의 인자로 지정하면 되는데, 연결 대상의 테이블 이름과 기본키 이름을 합친 문자열을 전달하면 됩니다. ① 코드를 보면 <테이블이름>.<PK이름> 형식인데, 외래키로 연결할 대상인 User 모델의 테이블 이름은 users고, 이 테이블의 기본키 이름은 id이므로 users.id를 전달한 것입니다. 외래키 이름은 업계의 사실상 표준 관례인 _id 접미사를 사용하여 user_id로 이름 짓습니다. 여기까지는 데이터베이스에서 사용할 물리적인 정보로 관계를 다룬 것입니다.