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);