Błąd informuje o problemie:nie masz unikalnego ograniczenia dla date_dimension
które pasuje do Twojego ograniczenia klucza obcego.
Prowadzi to jednak do większego problemu projektowego:Twoja relacja klucza obcego nie ma żadnego sensu.
Możesz ewentualnie rozwiązać swój „problem” za pomocą:
CREATE UNIQUE INDEX date_dimension(id,id);
Ale to głupie, ponieważ id
jest zawsze taka sama. Może być również wyrażony jako:
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
Następnie pozbycie się effective_date
kolumna, która zawsze byłaby identyczna z evaluation_date
w twoim przykładzie.
Albo... prawdopodobnie naprawdę chcesz dwóch relacji FK:
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
FOREIGN KEY (effective_date) REFERENCES date_dimension(id);