【发布时间】:2017-07-13 02:03:30
【问题描述】:
假设我有一张Staff 的表格
create table staff (
staffID number,
staffName varchar2(255)
);
但每个员工都有零个或多个下属,他们也是员工。
如何设计桌子?
我正在考虑添加一个引用 staff 表上另一行的额外列
alter table staff add (subordinateID number not null);
为了使其成为外键,我还必须将 subordinateID 设为主键
alter table staff add constraint pk primary key (staffID, subordinateID);
当我实际引用时,即将从属 ID 链接到下属的 staffID
alter table staff add constraint fk foreign key (subordinateID) references staff (staffID);
有错误
ORA-02270: 此列列表没有匹配的唯一键或主键
这让我很困惑,因为我已经将staffID 作为主键的一部分?应该怎么做才能解决这个问题,我应该如何设计桌子?
【问题讨论】:
标签: sql oracle database-design foreign-keys ddl