Nếu bạn muốn nhiều diễn viên được liên kết với một bộ phim và nhiều bộ phim được liên kết với một diễn viên, bạn muốn có nhiều người. Điều này có nghĩa là bạn cần một bảng liên kết. Nếu không, bạn có thể bỏ quá trình chuẩn hóa và sử dụng cơ sở dữ liệu NoSQL.
Giải pháp bảng liên kết có thể giống như sau:
class Actor(Base):
__tablename__ = 'actors'
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
name = Column(String)
nickname = Column(String)
academy_awards = Column(Integer)
class Movie(Base):
__tablename__ = 'movies'
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
title = Column(String)
actors = relationship('ActorMovie', uselist=True, backref='movies')
class ActorMovie(Base):
__tablename__ = 'actor_movies'
actor_id = Column(UUID(as_uuid=True), ForeignKey('actors.id'))
movie_id = Column(UUID(as_uuid=True), ForeignKey('movies.id'))
Nếu bạn không muốn ActorMovie là một đối tượng kế thừa từ Base, bạn có thể sử dụng sqlachlemy.schema.Table
.