sql >> Databáze >  >> RDS >> PostgreSQL

Jak vytvořit pole se seznamem cizích klíčů v SQLAlchemy?

Pokud chcete, aby bylo k filmu přidruženo mnoho herců a mnoho filmů bylo přidruženo k herci, chcete mít mnoho k mnoha. To znamená, že potřebujete asociační tabulku. Jinak byste mohli normalizaci zahodit a použít databázi NoSQL.

Řešení tabulky přidružení může připomínat:

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'))

Pokud nechcete, aby byl ActorMovie objektem dědícím z Base, můžete použít sqlachlemy.schema.Table .




  1. Vracet pouze číselné hodnoty v MySQL

  2. SQLSTATE[42S22]:Sloupec nenalezen:1054 Neznámý sloupec „id“ v „klauzuli where“ (SQL:vyberte * z „skladeb“, kde „id“ =5 limit 1)

  3. Vypsat granty a oprávnění pro materializovaný pohled v PostgreSQL

  4. Jak funguje CONVERT_TZ() v MariaDB