【发布时间】:2015-02-27 18:10:28
【问题描述】:
我不确定这个问题的标题是否正确。我可以为我的任何表添加足够好的唯一约束,但在下面的情况下,我不确定如何做我所追求的:
class Branch(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(160))
#foreign key for 'branches' in Account class. access with Branch.account
account_id = db.Column(db.Integer, db.ForeignKey('account.id'))
class Account(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(160), unique=True)
branches = db.relationship('Branch', backref = 'account', lazy = 'dynamic')
因此,当我向 Branch 表的 name 列添加唯一约束时,我无法将同名分支添加到不同的帐户。例如,西雅图可以是 AccountA 和 AccountB 的分支。
我想要做的是应用一个约束,仅当 account.id 相同时才检查唯一性。这可能吗?
【问题讨论】:
-
完全重复。感谢您的链接——它帮助我找到了我需要的解决方案!
标签: mysql flask sqlalchemy one-to-many alembic