Это похоже на случай использования внешнего ссылочного ключа. (Оракул)
Обычно используемый пример - отношения Сотрудник-Менеджер.
Данный сотрудник может быть менеджером (для других сотрудников) и, в свою очередь, может иметь менеджера (или нет, если он является начальником).
Определение таблицы и определение ограничения будут такими:
CREATE TABLE EMP
(
EMPNO NUMBER(4) NOT NULL,
ENAME VARCHAR2(10 BYTE),
JOB VARCHAR2(9 BYTE),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2)
)
и ограничение будет ..
alter table emp add constraint fk_emp_mgr
foreign key mgr references emp(empno);
Это означает, что идентификатор менеджера для данного сотрудника должен быть самим сотрудником.
Вот пример данных.
EMPNO ENAME JOB MGR
7369 SMITH CLERK 7902
7499 ALLEN SALESMAN 7698
7521 WARD SALESMAN 7698
7566 JONES MANAGER 7839
7654 MARTIN SALESMAN 7698
7698 BLAKE MANAGER 7839
7782 CLARK MANAGER 7839
7788 SCOTT ANALYST 7566
7839 KING PRESIDENT
7844 TURNER SALESMAN 7698
7876 ADAMS CLERK 7788
7900 JAMES CLERK 7698
7902 FORD ANALYST 7566
7934 MILLER CLERK 7782
Как видите, у всех сотрудников есть менеджер (кроме KING, который является руководителем компании).
каждый из них, в свою очередь, является сотрудником.
Обратите внимание, что это модель, которая подходит и идеально подходит для систем в стиле OLTP. Не существует избыточных данных, и соблюдаются ограничения целостности данных.