【发布时间】:2015-08-20 21:21:30
【问题描述】:
我有一个存储团队成员的 sql 连接表。 team 和 people 表已经存在,team_members 表连接了这两个表。
团队成员表还包括另一个布尔列 team_lead,它代表给定团队的领导者。每个团队只能有一个领导者,我知道这很令人震惊:)。
我想添加一个独特的约束,以确保每个团队只有一个团队负责人。本质上,我想确保 team_id 列的每个唯一值在 team_lead 列中只能存在一个值为 true 的行,但对于 team_lead 可能存在任意数量的值为 false 的行。
我想添加第二个约束,以防止从 team_member 数据库中删除 team_lead,必须将 team_lead 值设置为 false,然后才能删除行。
看起来部分密钥可能是解决方案,但是,老实说,我对它们并不熟悉,我也不确定 liquibase 是否允许使用它们。我不期望完整的 sql,但有人可以帮助我了解我应该使用什么工具以及为什么要强制执行此操作?
【问题讨论】:
标签: sql postgresql liquibase