Thật không may, bạn vừa hỏi câu hỏi tuổi già;
Tất nhiên, câu trả lời là bạn không; bạn có hai cột. Để mở rộng ví dụ về nhân viên của bạn, bảng nhân viên của bạn sẽ trở thành:
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)
);
Như bạn có thể thấy, đây không phải là một việc đặc biệt tốt để làm và phá vỡ quá trình bình thường hóa; Điều gì sẽ xảy ra nếu bạn muốn nhân viên của mình (hoặc tất nhiên là nhân viên của bạn muốn) có 3 kỹ năng? Hay 10 ?.
Có lẽ sẽ tốt hơn nếu tạo một bảng thứ ba và thực hiện tất cả các phép nối của bạn bằng một khóa chính và khóa ngoại; vì vậy bạn sẽ có
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 );