O erro informa o problema:você não tem uma restrição exclusiva em
date_dimension
que corresponda à sua restrição de chave estrangeira. No entanto, isso leva ao maior problema de design:seu relacionamento de chave estrangeira não faz sentido.
Você poderia resolver seu "problema" com:
CREATE UNIQUE INDEX date_dimension(id,id);
Mas isso é idiota, porque
id
é sempre o mesmo. Também poderia ser expresso como:FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
Em seguida, livrar-se do
effective_date
coluna, que sempre seria idêntica a evaluation_date
no seu exemplo. Ou... você provavelmente realmente quero dois relacionamentos FK:
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
FOREIGN KEY (effective_date) REFERENCES date_dimension(id);