У меня есть компания с кодом страны, бизнес-ID, и список сотрудников:Ребенок с несколькими внешними ключами к родительскому?
class Company(db.Model):
id = db.Column(db.Integer, primary_key=True)
business_id = db.Column(db.String(20), nullable=False)
country_code = db.Column(db.String(2), nullable=False)
employee = db.relationship('Employee', backref='company')
class Employee(db.Model):
id = db.Column(db.Integer, primary_key=True)
company_id = db.Column(db.Integer, db.ForeignKey('company.id'))
Но говорят данные изменения contantly и id
не всегда одинаковы для одной и той же компании (а компания может быть удалена из базы данных, а затем повторно добавлена позже с разными id
). Однако комбинация country_code
и business_id
всегда гарантирована как уникальная, так и постоянная для той же компании.
Как создать два внешних ключей для Employee
, которые указывают на Company
«s country_code
и business_id
?
Я попытался сделать это с помощью старой StackOverflow вопроса, но он поднял ошибку, 'str'
не следует использовать:
class Company(db.Model):
id = db.Column(db.Integer, primary_key=True)
business_id = db.Column(db.String(20), nullable=False)
country_code = db.Column(db.String(2), nullable=False)
employee = db.relationship('Employee', backref='company', foreign_keys=['Company.business_id', 'Company.country_code'])
Однако синтаксис языка Python позволяет мне ссылаться на самом класс.
Я понятия не имею, что все таблицы args и т. Д. Точно означают, но, похоже, он работал точно так, как я этого хотел. Спасибо чувак! :) –