0
我有以下映射類,它是來自其他兩個類的關聯。SqlAlchemy關係多對多與其他多對多關係
class InstanceCustomer(Base):
__tablename__ = 'Instances_Customers_Association'
cust_id = Column(Integer, ForeignKey('Customers.id'), primary_key=True)
inst_id = Column(Integer, ForeignKey('Instances.id'), primary_key=True)
customer = relationship(Customer, backref=backref('customer'))
instance = relationship(Instance, backref=backref('instance'))
def __init__(self, cust_id=None, inst_id=None):
self.cust_id = cust_id
self.inst_id = inst_id
def __repr__(self):
return "<InstanceCustomer(cust_id='%s', inst_id='%s')>" % (self.cust_id, self.inst_id)
我想將它關聯到Person類。因此,如1 InstanceCustomer可以有很多Person和1 Person可以有很多Instance Customer,我需要他們之間的其他關聯,我該怎麼做?主鍵/外鍵是否也是一個問題?
這裏是Person類
class Person(Base):
__tablename__ = 'person'
id = Column(Integer, primary_key=True)
謝謝你的回答!我只是因爲InstanceCustomer已經有兩個主鍵而掙扎,我無法處理這個問題 –
您不需要將這兩個外鍵用作主鍵。使用自動增量int id作爲主鍵。如果需要,使用唯一鍵確保只有一個(a_id,b_id)對。 – Valens
所以,如果我不理解你(a_id,b_id)不應該是一個組合鍵,但應該由另一個主鍵自動增加識別。 但我的問題是,InstanceCustomer由組成的主鍵,它應該在交叉關係表中。但是,當我試圖導入它們時,SQLAlchemy正在抱怨:「有多個外鍵路徑鏈接表等,」但即使我提供了關係foreign_key參數的消息仍然存在 –