SQL. Отношения-проблемы между двумя таблицами. Ключ идет в обе стороны

Я пытаюсь добавить отношения между двумя простыми таблицами в SSMS на диаграмме. Проблема в том, что я хочу, чтобы таблица "Artwork" была основной таблицей, а таблица "Artist" - внешней таблицей. Но когда я перетаскиваю отношения между ними, ключи блокируют обе таблицы. И я не могу понять, почему?? Я просто хочу, чтобы он был заблокирован в одном направлении... И, как вы можете видеть на картинке, я также установил столбцы "ArtistID" в обеих таблицах в качестве первичных ключей.

Таблица диаграмм SSMS

2 ответа

Решение

Вы действительно хотите отношения один-к-одному между Artist и Artwork? Казалось бы, "один ко многим" имеет больше смысла (в этом случае один художник может быть связан со многими произведениями искусства, но произведение искусства может иметь только одного художника).

В этом случае вы должны добавить еще один столбец первичного ключа в таблицу Artwork (ArtworkID например) и сделать ArtistID в таблице Artwork внешний ключ для Artist.

Это может выглядеть так:
введите описание изображения здесь

Вам нужно использовать составной ключ с художником и художественным произведением. Тогда ссылки будут работать. В настоящее время SSMS видит две таблицы в отношении "один к одному", так как они имеют одинаковый ключ. Это может быть идея ввести идентификатор обложки вместо использования имени и заголовка, если есть какая-либо возможность их изменения.

Другие вопросы по тегам