MySQL では、UNIQUE 制約が NULL 値を同等に扱わないことを知っています。したがって、ColumnX に一意の制約がある場合、2 つの別々の行が ColumnX に対して NULL の値を持つことができ、これは制約に違反しません。どうすればこれを回避できますか? 私の場合、ColumnX は実際には別のテーブルへの外部キーであるため、フラグを立てることができる任意の定数に値を設定することはできません。ここでのオプションは何ですか?
このテーブルには、主キーである「id」列もあることに注意してください。Ruby on Rails を使用しているため、この id 列を主キーとして保持することが重要です。
注 2: 実際には、私の一意のキーには多くの列が含まれており、そのうちのいくつかは null でなければなりません。それらは外部キーであり、そのうちの 1 つだけが非 null であるべきだからです。私が実際にやろうとしているのは、データベースで参照整合性を維持する方法でポリモーフィックな関係を「シミュレート」することですが、ここで尋ねられた質問に対する受け入れられたソリューションの最初のオプションで概説されている手法を使用します:ポリモーフィックな関連付けの外部キー?