powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Отношение "предок-потомок" и циклические ссылки
9 сообщений из 9, страница 1 из 1
Отношение "предок-потомок" и циклические ссылки
    #34356039
RebusA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, подскажите.
Ну например : 1.таблица служащий emp(emp_id, emp_name) emp_id primary key
2. Таблица отношений emp_parents(начальник - подчиненный) (p_emp_id, f_emp_id)
p_emp_id, f_emp_id являются foreign key emp(emp_id)
(p_emp_id, f_emp_id) primary key

Как избежать варианта когда Служащий1 приходится начальником Служащему2 и в тоже время
Служащий2 приходится начальником Служащему1.
Вот и немогу понять, это проблемы ссылочной целостности или процедурной и как это решается.

Если обратился не в ту ветку......отправьте по адресу :)

З.Ы. Все это будет под Oracle
...
Рейтинг: 0 / 0
Отношение "предок-потомок" и циклические ссылки
    #34356072
Tyo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему не хотите в одной таблице держать и EMP_ID, и EMP_PARENT?
Проблемы те же, а на одну таблицу меньше
...
Рейтинг: 0 / 0
Отношение "предок-потомок" и циклические ссылки
    #34356188
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RebusAВот и немогу понять, это проблемы ссылочной целостности или процедурной и как это решается.

Ссылочно это ограничение обеспечить не удастся. Либо процедурами, либо триггерами. Также надо не забыть, что циклы могут быть и большей длины чем 2.
...
Рейтинг: 0 / 0
Отношение "предок-потомок" и циклические ссылки
    #34356346
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RebusAКак избежать варианта когда Служащий1 приходится начальником Служащему2 и в тоже время Служащий2 приходится начальником Служащему1. Вот и немогу понять, это проблемы ссылочной целостности или процедурной и как это решается.
Хм. Во-первых, я бы не стал вводить такую терминологию. Есть целостность "вообще". Есть некоторые типовые виды проверок (например, ссылочная целостность) и поддерживаемые фичи для них (constraint-ы). Сейчас фич для проверки "ациклической целостности" нет, завтра их могут ввести, но странно считать, что проблема оттого перекочует в какую-то другую область.

На уровне constraint-ов эта задача имеет только весьма извратные решения, например:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create table Подчинение ( должность_подчиненного, должность_начальника ) ;

create table Сотрудники ( сотрудник, должность_сотрудника, начальник, должность_начальника ) ;

alter table Сотрудники add foreign key ( начальник, должность_начальника )
  references Сотрудники ( сотрудник, должность_сотрудника ) ;

alter table Сотрудники add foreign key ( должность_сотрудника, должность_начальника )
  references Подчинение ( должность_подчиненного, должность_начальника ) ;
...
Рейтинг: 0 / 0
Отношение "предок-потомок" и циклические ссылки
    #34356347
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуй, добавлю, что таблицу Подчинение лучше было бы назвать например ДопустимыеПодчинения, и по смыслу это справочник, заполняемый один раз (и отсутствие циклов проверяется именно там).
...
Рейтинг: 0 / 0
Отношение "предок-потомок" и циклические ссылки
    #34356750
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> как это решается

Выбросьте нафиг все, что Вы здесь нарисовали. Постройте стандартную структуру данных для штатного расписания.

> Все это будет под Oracle

Зачем Вам Oracle, если Вы не умеете проектировать? Тренируйтесь на кошках.
...
Рейтинг: 0 / 0
Отношение "предок-потомок" и циклические ссылки
    #34356798
RebusA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело все в том что в моем случае, возможен вариант когда у одного потомка есть два или более предков :).
Вообщем всем большое спасибо за ответы и советы.
На этом мой вопрос не заканчивается, но это уже касается некоторых деталей реализации в оракле, так что буду писать в соответствующую ветку.
Еще раз всем спасибо.
...
Рейтинг: 0 / 0
Отношение "предок-потомок" и циклические ссылки
    #34356838
RebusA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_20040621> как это решается

Выбросьте нафиг все, что Вы здесь нарисовали. Постройте стандартную структуру данных для штатного расписания.

> Все это будет под Oracle

Зачем Вам Oracle, если Вы не умеете проектировать? Тренируйтесь на кошках.

Уважаемый, учится надо вам. Кто вам сказал что это штатное расписание?
И мне кажется что я не просил - "народ, сделайте за меня". Да, мне до проектировщика БД еще очень и очень далеко. Но как спроектировать обычное дерево я понимаю и стараюсь учиться.
Короче, что спорить :). Не моя вина что у вас, уважаемый guest_20040621 проблемы личного или какого-то другого характера. Да и не вас(гения от рождения) я собственно говоря спрашивал, я хотел услышать совет людей ОПЫТНЫХ или тех кто стремится таковыми стать.

Еще раз всем спасибо.
...
Рейтинг: 0 / 0
Отношение "предок-потомок" и циклические ссылки
    #34356904
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Избежать только контролируя процедурно. Причем транзакции изменения таблицы emp_parents нужно сериализовать.
2 Tyo Так получится дерево а в варианте автора - сеть.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Отношение "предок-потомок" и циклические ссылки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]