我在弄清楚如何为我正在定义的表正确构建我的 ForeignKey 列时遇到了很多麻烦。我在这里概述了我的模型(并在我的 PhoneNumber 模型中有问题的行旁边添加了注释):
class AreaCode(db.Model):
__tablename__ = 'areacodes'
area_code = db.Column(db.Integer, primary_key=True)
exchanges = db.relationship('Exchanges', backref='area_code')
class Exchange(db.Model):
__tablename__ = 'exchanges'
exchange = db.Column(db.Integer, primary_key=True)
area_code_pk = db.Column(db.Integer, db.ForeignKey('areacodes.area_code'), primary_key=True)
class PhoneNumber(db.Model):
__tablename__ = 'phonenumbers'
phone_number = db.Column(db.Numeric(precision=4, scale=0), primary_key=True)
exchange_pk = db.Column(db.Integer, db.ForeignKey('exchanges.exchange'), primary_key=True) # this doesnt work since Exchange has two primary keys
这是正在发生的事情:
我的 Exchange 表有一个复合主键。这是我的用例所必需的。
我试图定义的 PhoneNumber 表需要 Exchange 表的 ForeignKey,但由于 Exchange 表有一个复合主键,我无法弄清楚如何使关系工作。
任何指导将不胜感激。谢谢你。