L'erreur vous indique le problème :vous n'avez pas de contrainte unique sur date_dimension
qui correspond à votre contrainte de clé étrangère.
Cependant, cela conduit à un problème de conception plus important :votre relation de clé étrangère n'a aucun sens.
Vous pourriez peut-être résoudre votre "problème" avec :
CREATE UNIQUE INDEX date_dimension(id,id);
Mais c'est idiot, car id
est toujours le même. Il pourrait également être exprimé comme :
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
Puis se débarrasser de la effective_date
colonne, qui serait toujours identique à evaluation_date
dans votre exemple.
Ou... vous êtes probablement vraiment voulez deux relations FK :
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
FOREIGN KEY (effective_date) REFERENCES date_dimension(id);