Я не уверен, что правильно назвал этот вопрос. Я могу достаточно хорошо добавить уникальное ограничение к любой из моих таблиц, но в приведенном ниже случае я не уверен, как делать то, что мне нужно:
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, я не смог добавить одноименные ветки в разные учетные записи. Например, Сиэтл может быть филиалом для AccountA и AccountB.
Я хочу применить ограничение, которое проверяет уникальность только тогда, когда account.id совпадает. Это возможно?