PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment faire référence à une table de clé étrangère deux fois ?

SQLAlchemy ne parvient pas à découvrir le chemin de la relation.

user_id = Column(ForeignKey('user.id'))
user = relationship(User, backref=backref('votes_user'))
responder_id = Column(ForeignKey('user.id'))
responder = relationship(User, backref=backref('votes_responder'))

Faites le responder la relation doit se joindre à l'aide de responder_id ou user_id ? Je sais que c'est évident pour nous, mais SQLAlchemy ne considère pas les noms de colonnes ici. Vous pouvez renommer responder_id comme foobar et cela ne fera aucune différence.

Définissez les clés étrangères que vous souhaitez utiliser pour chaque relation.

user = relationship(User, foreign_keys=[user_id], backref=backref('votes_user'))
responder = relationship(User, foreign_keys=[responder_id], backref=backref('votes_responder'))