Closed SrNetoChan closed 2 years ago
Entretanto estive a pensar sobre este assunto, e embora a implementação de constraints UNIQUE faça sentido, para ajudar na produção, podia ser implementado uma RULE DO INSTEAD que pudesse ignorar a inserção na tabela se encontrasse já uma relação existente. Assim, ao contrário da constraint, evitava-se a devolução de um erro e o impedir de gravar as alterações.
As constraints foram introduzidas em https://github.com/dgterritorio/RECART/commit/df01a6713388880e24b2b04e9c66dffed6f6d423 Se quiser propor uma solução alternativa, pode fazer através de pull request.
Obrigado pela colaboração.
Reparei que as tabelas de ligação não contém contraints para evitar repetição de ligações. Ou seja, é possível estabelecer a mesma ligação entre dois elementos todas as vezes que quisermos.
Para adicionar uma constraint composta pelas duas colunas, basta adicionar o seguinte:
Entretanto, havendo duas colunas NOT NULL e com a constraint UNIQUE, elas próprias constituem uma chave primária, não havendo necessário existir o campo "identificador". Qualquer coisa como:
Penso que a alteração simplificaria o modelo e o tornaria mais robusto.