Helaas heb je zojuist de eeuwenoude vraag gesteld;
Het antwoord is natuurlijk dat je dat niet doet; je hebt twee kolommen. Om uw werknemersvoorbeeld uit te breiden, wordt uw werknemerstafel:
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)
);
Zoals je kunt zien, is dit niet bijzonder mooi om te doen en doorbreekt het de normalisatie; wat gebeurt er als u wilt dat uw werknemer (of uw werknemer wil natuurlijk) 3 vaardigheden heeft? Of 10?.
Het zou waarschijnlijk beter zijn om een derde tabel te maken en al je joins te doen met een enkele primaire en externe sleutel; dus je zou hebben
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 );