Tenho 2 modelos relacionados, model_A e model_B
Há uma relação 1:n entre eles
Significa que um registro no model_A pode ter vários registros relacionados no model_B
Gostaria que model_A tivesse uma coluna gerada (e armazenada)
Essa coluna gerada deve ser booleana
Deve ser definido como verdadeiro se houver 1 ou mais registros relacionados no modelo_B
Deve ser falso se houver 0 registros relacionados no modelo_B
Como escrevo a expressão para gerar esses valores booleanos?
Você precisa de um gatilho
model_b
que atualize a coluna redundante emmodel_a
.Não use
boolean
, porque isso força você a contar as linhas filhas para cada modificação de dados. Essa contagem não apenas exigiria algum esforço, mas também introduziria uma condição de corrida: se duas transações simultâneas excluíssem uma linha, nenhuma poderia ver os efeitos da outra, e você poderia acabar com um resultado errado.Use uma coluna
integer
oubigint
:Demonstração: