Я понимаю, что MySQL имеет различные параметры сортировки, которые я могу использовать для принудительного применения уникального индекса с учетом регистра, но для моего конкретного случая использования я хочу применить его только к подмножеству данных.
Большинство уникальныхИдентификаторы в наборе данных не чувствительны к регистру, поэтому создание чувствительного к регистру всего столбца не является идеальным.Я также могу определить, какие строки имеют идентификаторы, чувствительные к регистру.
Похоже, что MySQL также не может создать индекс с условием (исправьте меня, если я ошибаюсь).
Вот моя схема
masterId - int
canonicalId - varchar
environment - int
canonicalId - это столбец, на который я ссылаюсь, и он может быть привязан к различным средам.Прямо сейчас у меня есть уникальный индекс на canonicalId и окружающей среды.Окружающая среда "7" для примера должна иметь идентификаторы с учетом регистра, остальные не ...
Какой хороший способ справиться с этим?
Также: я не думаю, что созданиевсе уникальные идентификаторы с учетом регистра были бы хорошим решением здесь.Мы получаем эти идентификаторы из разных сервисов, и корпус может очень хорошо меняться на них, но не представлять разные элементы.Вот почему я хочу, чтобы принудительное использование чувствительности к регистру в службе, как известно, использует регистрозависимые идентификаторы.
Я думал о создании хэша SHA-256 canonicalId для этой конкретной среды и фактических данных вместе ссвязанный хеш будет сохранен в отдельной таблице, если это потребуется для последующего поиска.Мне нужно только обеспечить уникальность в этой таблице, так как информация в столбце masterId используется везде в моем приложении.Не уверен, что так будет лучше.