나는 목적의 구조가 동일하지만 별개 SQLAlchemy의 모델을 사용하여 두 테이블, 또한 Magazine
(미도시 참조하는 Whitelist
및 Blacklist
을 만들려고 해요 주어진 키와 일치하는 고유 제한 조건이 없습니다). 그들은 둘 다 캠페인 (예를 들어 정치 캠페인)의 인스턴스에 fkey하고 Politician
모델 (또한 표시되지 않음)에 fkey가 있습니다. 에 대한 블랙리스트/화이트 다수가있을 수 있기 때문에 1 Campaign
에,하지만 난 sqlalchemy.exc.ProgrammingError: (ProgrammingError) there is no unique constraint matching given keys for referenced table "campaigns"
를 얻을 마이그레이션을 실행할 때 :SQLAlchemy의 스키마는 : 참조 된 테이블
나는 Whitelist
/Blacklist
될 많은 떠올하고 있습니다. 또한 Campaign
에서 Politician
까지 M : 1이 필요합니다.
화이트리스트와 블랙리스트가 별개의 테이블에있는 이유는 이것이 고유 한 제약 조건 오류의 원인을 설명 할 수 있습니까? 또한이 관계형 스키마를 어떻게 만들 수 있습니까? 자체가 M입니다 Campaign
동안 Campaign
에 Whitelist
/Blacklist
에서 1 :
class Campaign(Base):
__tablename__ = "campaigns"
id = Column(Integer, primary_key=True, nullable=False)
politician_id = Column(Integer, ForeignKey('politician.id'), nullable=False)
description = Column(Text, nullable=True)
class Whitelist(Base):
__tablename__ = "whitelist"
id = Column(Integer, primary_key=True, nullable=False)
campaign_id = Column(Integer, ForeignKey('campaign.id'), nullable=False)
magazine_id = Column(Integer, ForeignKey('magazine.id'), nullable=False)
class Blacklist(Base):
__tablename__ = "blacklist"
id = Column(Integer, primary_key=True, nullable=False)
campaign_id = Column(Integer, ForeignKey('campaign.id'), nullable=False)
magazine_id = Column(Integer, ForeignKey('magazine.id'), nullable=False)
테이블 A -> 테이블 B (M : 1), 테이블 B -> 테이블 C (M : 1)이 잘못된 이유는 알 수 없습니다. –