powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / вопрос про FK ?
3 сообщений из 3, страница 1 из 1
вопрос про FK ?
    #32562407
zerrowich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FK должен ссылатся на PK
Эсли я запишу значение в PK то оно автоматически появится FK или мне его вставть туда каким тригером
спасибо за ответ
...
Рейтинг: 0 / 0
вопрос про FK ?
    #32562518
zayac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отвечая на ваш вопрос: нет, "автоматически" ничего не появится.
Пример взят из стандартной Оракловой демонстрационной схемы ScottTiger.
Например есть таблица Отделов и подчиненная таблица Сотрудников.
В данном примере предполагается, что в отделах работают сотрудники - основная таблица Отделы, подчиненная - Сотрудники (FOREIGN KEY emp_dept_fk), и некоторые сотрудники являются начальниками для других сотрудников (которые в свою очередь также могут быть начальниками) - основная таблица Сотрудники, подчиненная таблица Сотрудники (FOREIGN KEY emp_manager_fk).

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
CREATE TABLE departments
    ( department_id    NUMBER( 4 )
    , department_name  VARCHAR2( 30 )
    , manager_id       NUMBER( 6 )
    ) ;

ALTER TABLE departments
ADD ( CONSTRAINT dept_id_pk
       		 PRIMARY KEY (department_id)) ;

CREATE TABLE employees
    ( employee_id    NUMBER( 6 )
    , first_name     VARCHAR2( 20 )
    , last_name      VARCHAR2( 25 )
    , email          VARCHAR2( 25 )
    , phone_number   VARCHAR2( 20 )
    , hire_date      DATE
    , job_id         VARCHAR2( 10 )
    , salary         NUMBER( 8 , 2 )
    , commission_pct NUMBER( 2 , 2 )
    , manager_id     NUMBER( 6 )
    , department_id  NUMBER( 4 )
    ) ;

CREATE UNIQUE INDEX emp_emp_id_pk
ON employees (employee_id) ;

ALTER TABLE employees
ADD ( CONSTRAINT     emp_emp_id_pk
                     PRIMARY KEY (employee_id)
    , CONSTRAINT     emp_dept_fk
                     FOREIGN KEY (department_id)
                      REFERENCES departments
    , CONSTRAINT     emp_manager_fk
                     FOREIGN KEY (manager_id)
                      REFERENCES employees
    ) ;
Другими словами если у вас есть таблица Отделов и вы тригером заполняете таблицу Сотрудников, то этот тригер должен реализовать алгоритм определения к какому отделу относится данный сотрудник и кто является его начальником и при этом еще и заполнять информационные поля типа Имя, Телефон и т.д. В данном примере это просто невозможно.
...
Рейтинг: 0 / 0
вопрос про FK ?
    #32563115
Серега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zerrowichFK должен ссылатся на PK
Эсли я запишу значение в PK то оно автоматически появится FK или мне его вставть туда каким тригером
спасибо за ответ
Тригером вряд ли. Только из приложения, ИМХО.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / вопрос про FK ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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