У меня есть таблица, в которой перечислены все марки / модели автомобилей:
Make, Model, Year
Каждый ряд уникален, например, "Chevrolet Camaro 1969"
Затем у меня есть таблица, в которой перечислены «группы моделей», автомобили, которые часто группируются вместе, как Camaros 1967-1969 гг. Итак:
Make, Model, StartYear, EndYear, GroupName
Я добавил уникальные ограничения для "Make-Model-StartYear" и "Make-Model-EndYear".
Я хотел добавить внешний ключ, отображающий начальный год назад, в таблицу Models, в основном для обеспечения этого:
Chevrolet, Camaro, 1967, 1969, FirstGenerationCamaro
-> Chevrolet, Camaro, 1967 should exist in the Model table
-> Chevrolet, Camaro, 1969 should exist in the Model table
Когда я пытаюсь сделать это (в SQL Management Studio), я создаю сопоставление внешнего ключа:
Group.Make -> Model.Make, Group.Model -> Model.Model, Group.StartYear -> Model.StartYear
Group.Make -> Model.Make, Group.Model -> Model.Model, Group.EndYear -> Model.EndYear
На английском языке в группе, в которой написано "Chevrolet Camaro 1967-1969 гг.", Должно быть указано, что имеется образец записи для "Chevrolet Camaro 1967 г." и "Chevrolet Camaro 1969 г.".
Проблема, с которой я столкнулся, заключается в ошибке «Столбцы не соответствуют первичному ключу или существующему уникальному ограничению». Но у меня действительно есть ограничения для "Make-Model-StartYear" и "Make-Model-EndYear".
Возможно, я поступаю неправильно, но как я могу гарантировать, что на самом деле существует запись модели как для начального, так и для конечного года группы?
Спасибо,
Dave
PS: SQL2008 R2