Я знаю, что в MySQL ограничения UNIQUE не обрабатывают значения NULL как равные. Так что, если у меня есть уникальное ограничение на ColumnX, то две отдельные строки могут иметь значения NULL для ColumnX, и это не будет нарушать ограничение. Как я могу обойти это? Я не могу просто установить значение в произвольную константу, которую могу пометить, потому что ColumnX в моем случае на самом деле является внешним ключом для другой таблицы. Какие у меня есть варианты?
Обратите внимание, что в этой таблице также есть столбец "id", который является ее первичным ключом. Поскольку я использую Ruby on Rails, важно сохранить этот столбец id в качестве первичного ключа.
Примечание 2: На самом деле мой уникальный ключ охватывает много столбцов, и некоторые из них должны быть нулевыми, поскольку они являются внешними ключами, и только один из них должен быть ненулевым. На самом деле я пытаюсь «симулировать» полиморфные отношения таким образом, чтобы сохранить ссылочную целостность в БД, но используя технику, описанную в первом варианте принятого решения для вопроса, задаваемого здесь: Почему можно у вас нет внешнего ключа в полиморфной ассоциации?