Na tabela a seguir:
CREATE TABLE user (
email varchar[],
...
);
Eu gostaria de garantir que dois usuários não tenham o mesmo e-mail. Não tenho certeza de como a UNIQUE
restrição interage com os tipos de dados da matriz. Qual é a maneira apropriada de garantir a exclusividade? Ou isso é um antipadrão e devo declarar outra emails
tabela?
Sim, como você disse, eu criaria uma tabela de emails que se referisse aos usuários.
Em seguida, na tabela de emails, você pode adicionar uma restrição exclusiva em id_user, id_email.
PS eu não trabalho normalmente no PostgreSQL, para a sintaxe eu me referi ao link