定義しているテーブルの 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 テーブルには複合主キーがあるため、関係を機能させる方法がわかりません。
任意のガイダンスをいただければ幸いです。ありがとうございました。