我有一个员工数据库、一个技能表和一个技能集表:
CREATE TABLE EMPLOYEE (
EmployeeID NUMBER (5, 0) NOT NULL,
*.....other fields*
CONSTRAINT EMPLOYEE_PK PRIMARY KEY (EmployeeID));
CREATE TABLE SKILL(
SkillID NUMBER (5, 0) NOT NULL,
Description VARCHAR2(30),
CONSTRAINT SKILL_PK PRIMARY KEY (SkillID),
CONSTRAINT SKILL_FK FOREIGN KEY (EmployeeID) REFERENCES EMPLOYEE(EmployeeID));
CREATE TABLE SKILLSET(
SkillSetID NUMBER (5,0) NOT NULL,
EmployeeID NUMBER (5,0) NOT NULL,
SkillID NUMBER (5,0) NOT NULL,
CONSTRAINT SKILLSET_PK PRIMARY KEY (SkillSetID)
CONSTRAINT SKILLSET_SKILL_FK FOREIGN KEY (SkillID) REFERENCES Skill(SkillID));
CONSTRAINT SKILLSET_EMP_FK FOREIGN KEY (EmployeeID) REFERENCES EMPLOYEE(EmployeeID));我有能具备多种技能的员工,这些技能存储在技能集表上。当我试图从技能表为多个员工分配技能时,我得到了ORA-00001:唯一约束(YSKILLSETID)。
这对我来说是有意义的,我仍然在寻找一种解决方案,让多名员工具备多种技能。
然而,我的困惑在于,一个员工可以有很多技能,难道不应该受到独特的约束吗?
INSERT INTO SKILLSET VALUES (125, 31150, 2513);
INSERT INTO SKILLSET VALUES (124, 31150, 2523);
INSERT INTO SKILLSET VALUES (122, 31150, 8493);
INSERT INTO SKILLSET VALUES (121, 31153, 2141);
INSERT INTO SKILLSET VALUES (120, 31154, 2521);
INSERT INTO SKILLSET VALUES (119, 31154, 2141);
INSERT INTO SKILLSET VALUES (118, 31150, 2521);我的问题:
发布于 2021-07-16 14:22:55
我认为这将有助于清楚地表述问题领域。我认为:
这个系统有许多雇员。这个系统有很多技能。员工可能没有或更多的技能。一项技能属于零或多名雇员。
如果是这样的话,您可以使用以下表格:
Employee
----
ID (pk)
...
Skill
----
ID (pk)
Description
...
Employee_skill
--------------
employee_id (fk)
skill_id (fk)
....https://stackoverflow.com/questions/68410133
复制相似问题