Lỗi cho bạn biết sự cố:Bạn không có ràng buộc duy nhất đối với date_dimension
phù hợp với ràng buộc khóa ngoại của bạn.
Tuy nhiên, điều này dẫn đến vấn đề thiết kế lớn hơn:Mối quan hệ khóa ngoài của bạn không có ý nghĩa gì.
Bạn có thể giải quyết "vấn đề" của mình với:
CREATE UNIQUE INDEX date_dimension(id,id);
Nhưng thật ngu ngốc, bởi vì id
luôn luôn như vậy. Nó cũng có thể được diễn đạt như sau:
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
Sau đó, loại bỏ effective_date
cột này sẽ luôn giống với evaluation_date
trong ví dụ của bạn.
Hoặc ... bạn có thể thực sự muốn có hai mối quan hệ FK:
FOREIGN KEY (evaluation_date) REFERENCES date_dimension(id);
FOREIGN KEY (effective_date) REFERENCES date_dimension(id);