더북(TheBook)

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로 이름 짓습니다. 여기까지는 데이터베이스에서 사용할 물리적인 정보로 관계를 다룬 것입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.