残念ながら、あなたは昔からの質問をしたばかりです。
もちろん、答えはあなたがしないということです。 2つの列があります。従業員の例を拡張すると、従業員テーブルは次のようになります。
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)
);
ご覧のとおり、これは特にきれいなことではなく、正規化を破ります。従業員(またはもちろん従業員が望んでいる)に3つのスキルを持たせたい場合はどうなりますか?または10?
3番目のテーブルを作成し、すべての結合を単一の主キーと外部キーで行う方がおそらく良いでしょう。だからあなたは
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 );