Как связать внешний ключ с полем, которое может содержать его несколько типов? - PullRequest
1 голос
/ 23 июня 2010

В настоящее время я работаю над приложением DVD Store. Есть две таблицы, в которых у меня возникла проблема. Первый - это Жанры , а другой - DVDCatalog . Мне нужно, чтобы DVD можно было перечислить в одном или нескольких жанрах. Итак, для этого мне нужно хранить идентификаторы жанров (4,5,6). Таким образом, я не могу установить связь с GenresID в таблице Genres . У вас есть какое-нибудь решение для этого, чтобы я мог сохранить отношения между ними?

Пожалуйста, помогите !!!

1 Ответ

2 голосов
/ 23 июня 2010

Да. Не храните идентификаторы жанров, такие как (4,5,6), используйте сначала нормальную форму , а затем вы можете получить необходимую ссылочную целостность.

Вам нужна таблица отношений (скажем, DVD_Genres) с 2 столбцами

DVD_Id и Genre_Id (они образуют составной первичный ключ)

Тогда, если бы DVD Id 1 был в жанрах 4,5 и 6, у вас было бы 3 строки в этой таблице, чтобы представить этот факт.

DVD_Id     Genre_Id
1            4
1            5
1            6

Это также сделает поиск DVD-дисков, соответствующих определенному жанру, более простым и эффективным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...