PostgreSQL

ある条件下でユニークな制約を実現する

設計としてどうなの? という気もしますが、たとえばアプリケーション上はキーとなるカラムがあるがテーブルの設計上は同じ値で複数行の挿入ができるようにしたい。でも、そのキーの値はある条件下ではユニークであることを保証したい場合。 具体的な例で言…

CHECK制約で排他的サブタイプを実現する

データベースの設計を勉強すると、スーパータイプとサブタイプという考え方が出てきます。 たとえば、社員データベースを作成するとして、その属性に「社員番号」「名前」があって、正社員は「月給」を、アルバイトは「時給」を持ちたい場合。 スーパータイ…