Подтвердить что ты не робот

Внешний ключ, ссылающийся на представление в Oracle

Я пытаюсь ссылаться на представление с помощью внешнего ключа, но получаю эту ошибку:

"Ошибка: ORA-02270: нет соответствующего уникального или первичного ключа для этого списка столбцов"

Однако я создал первичный ключ на этом представлении и проверил его на вкладке "Ограничения" в TOAD.

Это таблица, которую я пытаюсь создать:

CREATE TABLE QUESTION
(   
    QUESTION_ID             INTEGER not null,
    CREATED_USER_ID         INTEGER not null,    
    CONSTRAINT PK_QUESTION  PRIMARY KEY (QUESTION_ID),
    CONSTRAINT FK_USER
        FOREIGN KEY (CREATED_USER_ID)
        REFERENCES SOME_VIEW(VIEW_ID)
);

SOME_VIEW - это представление, основанное на другом представлении, которое указывает на таблицу сотрудников в другой схеме.

4b9b3361

Ответ 1

Независимо от возможности создания внешних ключей для просмотра, это действительно не самая лучшая идея для реализации.

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

Итак, хорошей практикой для меня было бы ссылаться на существующую таблицу из вашей новой, несмотря на ее место жительства в другой схеме.

Ответ 2

Похоже на то, что внешний ключ к виду может вызвать проблемы.