Hvis du ønsker, at mange skuespillere skal forbindes med en film, og mange film skal forbindes med en skuespiller, vil du have mange-til-mange. Det betyder, at du skal bruge et foreningsbord. Ellers kan du smide normalisering væk og bruge en NoSQL-database.
En tilknytningstabelløsning kan ligne:
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'))
Hvis du ikke ønsker, at ActorMovie skal være et objekt, der arver fra Base, kan du bruge sqlachlemy.schema.Table
.