De fout vertelt je het probleem:je hebt geen unieke beperking op date_dimension die overeenkomt met uw externe sleutelbeperking.
Dit leidt echter tot het grotere ontwerpprobleem:uw relatie met buitenlandse sleutels slaat nergens op.
U kunt uw "probleem" mogelijk oplossen met:
CREATE UNIQUE INDEX date_dimension(id,id);
Maar dat is dom, want id is altijd hetzelfde. Het kan ook worden uitgedrukt als:
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
Verwijder vervolgens de effective_date kolom, die altijd identiek zou zijn aan evaluation_date in jouw voorbeeld.
Of... je waarschijnlijk echt wil twee FK-relaties:
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
FOREIGN KEY (effective_date) REFERENCES date_dimension(id);