Нужна помощь в создании таблицы с ограничениями - PullRequest
0 голосов
/ 13 мая 2018

У меня есть требование, в котором я должен создать,

  1. таблица персоны с атрибутами id, Fname, Lname а также человек может быть сотрудником или менеджером.
  2. Существует ограничение, менеджер должен быть сопоставлен с 1 или более emp (хотя бы одним emp).
  3. Теперь, в этом случае, нужно ли нам создать отдельную таблицу для сотрудника и менеджера и связать ее с персоной, если так, как мы можем связать таблицу и таблицу с персоналом и поддерживать вышеупомянутое ограничение

Примечание. Для таблицы emp или manager нет особых атрибутов

1 Ответ

0 голосов
/ 13 мая 2018

Это похоже на стандартный стол Скотта EMP (если вы с ним знакомы).Примерно так:

  • Столбец ID_EMP является общим для всех лиц
  • ID_MGR показывает, кто является менеджером этого человека

SQL> create table person
  2    (id_emp number        constraint pk_pers primary key,
  3     fname  varchar2(20),
  4     lname  varchar2(20),
  5     id_mgr number        constraint fk_mgr_emp references person (id_emp)
  6    );

Table created.

SQL> insert into person (id_emp, fname, lname, id_mgr)
  2    select 1, 'Little' , 'Foot'    , null from dual union
  3    select 2, 'Charles', 'Leclerc' , 1    from dual union
  4    select 3, 'Rio'    , 'Haryanto', 1    from dual union
  5    select 4, 'Seb'    , 'Vettel'  , 2    from dual union
  6    select 5, 'Romain' , 'Grosjean', 2    from dual;

5 rows created.

Иерархическое представление:

SQL> select lpad(' ', 2 * level) || lname employee
  2  from person
  3  start with id_mgr is null
  4  connect by prior id_emp = id_mgr;

EMPLOYEE
-------------------------------------------------------------------------------

  Foot
    Leclerc
      Vettel
      Grosjean
    Haryanto

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...