L'errore indica il problema:non hai un vincolo univoco su date_dimension che corrisponde al tuo vincolo di chiave esterna.
Tuttavia, questo porta al problema di progettazione più grande:la tua relazione con la chiave esterna non ha alcun senso.
Potresti eventualmente risolvere il tuo "problema" con:
CREATE UNIQUE INDEX date_dimension(id,id);
Ma è stupido, perché id è sempre lo stesso. Potrebbe anche essere espresso come:
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
Quindi sbarazzati della effective_date colonna, che sarebbe sempre identica a evaluation_date nel tuo esempio.
Oppure... probabilmente davvero voglio due relazioni FK:
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
FOREIGN KEY (effective_date) REFERENCES date_dimension(id);