Мне было интересно, есть ли возможность создать таблицу, в которой у меня есть таблица, которая принимает внешний ключ, но может иметь несколько значений для одной и той же строки.
Например:
Employee(id,name,skillid);
Skill(Skillid,skillname);
здесь экземпляр для Employee может быть
Employee(311,"john", (01,02) );
Skill (01,Java); Skill (02,C++);
Я реализовал тот же первичный ключ создания для таблицы, что и (is, skillid)
Но в случае, если у меня есть таблица:
create table Movie (Movie_ID varchar(5),
Cast varchar(5),
foreign key(Cast) references Person(Person_ID),
primary key(movie_id, Cast));
и другая таблица:
create table Awards (Award_Id varchar(5),
Person_Id varchar(5),
Movie_Id varchar(5),
Award_Name varchar(30),
Year number(4),
Organization_Id varchar(5),
primary key (Award_id,year,Organization_Id),
foreign key(Person_Id) references Person(Person_ID),
-- foreign key(Movie_ID) references Movie(Movie_ID),
foreign key(Organization_Id) references Organization(Organization_Id));
В этом случае я не могу использовать Movie_ID в качестве внешнего ключа, так как в таблице, на которую он ссылается, в качестве первичного ключа используется комбинация из двух вещей. И я не использую второй из этих атрибутов в таблице наград.
Любые намеки, как это можно реализовать?