sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan opretter man et felt med en liste over fremmednøgler i SQLAlchemy?

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 .




  1. Sådan opretter du PL/SQL SYS_REFCURSOR i Oracle-databasen

  2. Vælg kolonner fra én tabel baseret på kolonnenavnene fra en anden tabel

  3. uafsluttet CSV-citeret felt i Postgres

  4. Sådan indlæses JDBC-konfiguration fra Egenskabsfil Eksempel