Niestety właśnie zadałeś odwieczne pytanie;
Odpowiedź brzmi, oczywiście, że nie; masz dwie kolumny. Aby rozszerzyć przykład pracownika, Twoja tabela pracowników wyglądałaby następująco:
create table employees (
id number
, name varchar2(4000)
, skill_1 number
, skill_2 number
, constraint employee_pk primary key (id)
, constraint employee_skill_1_fs
foreign key ( skill_1 )
references skills(skillid)
, constraint employee_skill_2_fs
foreign key ( skill_2 )
references skills(skillid)
);
Jak widać, nie jest to szczególnie ładna rzecz do zrobienia i łamie normalizację; co się stanie, jeśli chcesz, aby Twój pracownik (lub Twój pracownik oczywiście chciał) miał 3 umiejętności? Lub 10?.
Prawdopodobnie lepiej byłoby utworzyć trzecią tabelę i wykonać wszystkie połączenia za pomocą jednego klucza podstawowego i obcego; więc byś miał
employees ( employee_id, ..., pk employee_id);
employee_skills ( employee_id, skill_id, ..., pk employee_id, skill_id, fk skill_id );
skills ( skill_id, description, ..., pk skill_id );