Ich habe ein Unternehmen mit einem Ländercode, eine Business-ID und einer Liste der Angestellten:Kind mit mehreren Fremdschlüsseln an Eltern?
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'))
Aber sagen contantly die Datenänderungen und die id
ist nicht immer das gleiche für die gleiche Firma (a Firma könnte aus der Datenbank entfernt werden, später wieder mit verschiedenen id
hinzugefügt). Jedoch ist die Kombination country_code
und business_id
immer, die garantiert einzigartig und konstant für dieselbe Firma ist.
Wie erstelle ich zwei Fremdschlüssel für Employee
, die in Company
country_code
und business_id
zeigen?
Ich habe versucht, dies durch eine ältere Stackoverflow Frage zu tun, aber es wird eine Fehler dass 'str'
sollten nicht verwendet werden:
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'])
jedoch
, Syntax hindert mich Pythons von bezieht sich auf die Klasse.
Ich habe keine Ahnung was alle Tabellenargumente etc. genau meinen, aber es scheint genau so zu funktionieren, wie ich es wollte. Danke, Mann! :) –