以下是sqlalchemy的文檔。爲什麼SQLAlchemy關聯對象中的外鍵標記爲主鍵?
注意如何在關聯類left_id和right_id,他們 第一標記爲ForeignKey的,然後primary_key =真
這是有道理的,我認爲他們應該是外鍵,因爲邏輯上它們是外鍵的其他兩張父母和孩子的桌子。
那麼,讓它們成爲主鍵的目的是什麼呢?
這是怎麼回事?請解釋。
class Association(Base):
__tablename__ = 'association'
left_id = Column(Integer, ForeignKey('left.id'), primary_key=True)
right_id = Column(Integer, ForeignKey('right.id'), primary_key=True)
extra_data = Column(String(50))
child = relationship("Child", back_populates="parents")
parent = relationship("Parent", back_populates="children")
class Parent(Base):
__tablename__ = 'left'
id = Column(Integer, primary_key=True)
children = relationship("Association", back_populates="parent")
class Child(Base):
__tablename__ = 'right'
id = Column(Integer, primary_key=True)
parents = relationship("Association", back_populates="child")