Я изучаю базы данных и в настоящее время работаю над проектом объектно-реляционной БД, и я столкнулся с небольшой проблемой с количеством возможных ограничений в таблице объектов. Я использую «Системы баз данных: Полная книга» Гектора Гарсиа-Молина (и других авторов) в качестве справочного материала, и есть общий пример SQL, подобный этому:
CREATE TYPE StarType AS (
name CHAR(30),
address AddressType,
bestMovie REF(MovieType) SCOPE Movies
);
Теперь у меня есть похожий тип в моем проекте, так как он также использует ссылку на другой тип в типе, но пункт для размещения ссылки там не включает SCOPE в Oracle (по крайней мере, у меня нет ' я нашел его в документации и выдает ошибку). Итак, у меня есть такой тип:
CREATE OR REPLACE TYPE "ApplicationType" AS OBJECT (
"person" REF "PersonType",
"competition" REF "CompetitionType",
"dateApplied" DATE
);
/
... который работает. Но когда я хочу ограничить столбцы REF, я могу ограничить только один, например:
CREATE TABLE "Applications" OF "ApplicationType" (
"person" SCOPE IS "People" /* or "competition" SCOPE IS "Competitions" */
)
OBJECT IDENTIFIER IS SYSTEM GENERATED;
Есть ли способ задать ограничения для обоих столбцов REF?