2015-03-18 2 views
0

У меня довольно большой оракул db, 50+ таблиц, загрузка отношений. Реляционная модель, которую я сгенерировал, выглядит (вы можете себе представить ..) действительно страшно.Охват реляционной модели Oracle отношениями

Вот и мне интересно:

Можно ли генерировать подвид, как, например,
«У меня есть эта таблица А, и я хочу подвид включать только таблицы, которые имеют наведение FK в точке А»

Я бегу Oracle SQL Developer 4.0.3.16, но для пользы добра, я желая установить другую среду.

ответ

1

Определенно. Выберите таблицу «root». Щелкните правой кнопкой мыши, нажмите «Выбрать соседей». Скажите, сколько уровней нужно.

С помощью выбранных элементов щелкните правой кнопкой мыши еще раз и нажмите «создать подсмотр из выбранного».

У вас есть подзаголовок.

Subviews отлично подходят для обеспечения большей управляемости больших моделей для удобства чтения, отчетности и поиска.

Я немного расскажу о subviews here.

+0

Это точно то, что я искал. Спасибо, сэр – evictednoise

+0

Тогда как насчет голосования, чтобы отметить его как приемлемый ответ :) – thatjeffsmith

0

Таблица ALL_CONSTRAINTS содержит все виды ограничений, включая внешние ключи. Тип ограничения для внешних ключей: 'R' как ссылочный (или ссылочный).

SELECT 
    A.TABLE_NAME AS ORIGINATING_TABLE , 
    A.COLUMN_NAME AS ORIGINATING_COLUMN, 
    A.CONSTRAINT_NAME     , 
    C.OWNER       , 
    C.R_OWNER       , 
    C_PK.TABLE_NAME AS REFERENCED_TABLE 
FROM 
    ALL_CONS_COLUMNS A 
JOIN ALL_CONSTRAINTS C 
ON 
    A.OWNER   = C.OWNER AND 
    A.CONSTRAINT_NAME = C.CONSTRAINT_NAME 
JOIN ALL_CONSTRAINTS C_PK 
ON 
    C.R_OWNER   = C_PK.OWNER AND 
    C.R_CONSTRAINT_NAME = C_PK.CONSTRAINT_NAME 
WHERE 
    C.CONSTRAINT_TYPE = 'R' AND 
    C_PK.TABLE_NAME = 'AO_563AEE_MEDIA_LINK_ENTITY'; 
+0

Благодарю вас, сэр! – evictednoise

+0

Если это сработает, отметьте как ответ :-) – Koshinae

0

В user_constraints вы найдете все ограничения. Существуют также ограничения внешнего ключа. Вы можете найти таблицу с:

select table_name 
from user_constraints 
where constraint_type = 'R' 
    and r_constraint_name = 'primary key of A'; 
Смежные вопросы