Om du vill att många skådespelare ska förknippas med en film, och många filmer förknippas med en skådespelare, vill du ha många-till-många. Det betyder att du behöver ett föreningsbord. Annars kan du kasta undan normalisering och använda en NoSQL-databas.
En associationstabelllösning kan likna:
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'))
Om du inte vill att ActorMovie ska vara ett objekt som ärver från Base kan du använda sqlachlemy.schema.Table
.