【发布时间】:2017-04-17 05:32:18
【问题描述】:
我的公司有一个国家代码、一个公司 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'))
但是假设数据不断变化,同一家公司的id 并不总是相同的(一家公司可能会从数据库中删除,然后用不同的id 重新添加)。但是,country_code 和 business_id 的组合始终保证是唯一的,并且对于同一家公司来说是不变的。
如何为指向Company 的country_code 和business_id 的Employee 创建两个外键?
我尝试通过一个较旧的 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 的语法阻止我引用类本身。
【问题讨论】:
标签: python sql python-3.x sqlalchemy foreign-keys