У меня есть таблица пользователей с двумя столбцами: «электронная почта» и «новая_почта». Я нуждаюсь:
Ограничение уникальности без учета регистра, охватывающее оба столбца - то есть, если «[email protected]» появляется в столбце «email» одной строки, то вставка «[email protected]» в «new_email» другой строки (или даже той же строки) 'столбец должен выйти из строя.
Быстрый поиск без учета регистра для заданного адреса электронной почты в полях 'email' или 'new_email', т. Е. Найдите строку, в которой new_email ИЛИ адрес электронной почты является "[email protected]", без учета регистра.
Я знаю, что мне было бы проще сделать это, создав связанную таблицу «электронных писем», но я ожидаю, что буду искать пользователей в этой таблице (по первичному ключу) из нескольких приложений, и я бы хотел избежать дублирования соединения. логика в разных местах, чтобы также получать свои электронные письма. Поэтому я думаю, что какой-то индекс выражения был бы лучше, если это возможно.
Если это невозможно, я полагаю, что моим следующим лучшим вариантом было бы создать представление, которое другие приложения могли бы использовать, чтобы легко получать электронные письма пользователя вместе с другой их информацией, но я тоже не уверен, как это сделать.
Я использую Postgres 8.4. Спасибо!