Oracle关系模型子视图由关系组成

时间:2015-03-18 11:44:37

标签: oracle oracle-sqldeveloper oracle-sql-data-modeler

我有一个非常大的oracle数据库,50多个表,关系负载。 我生成的关系模型看起来(你可以想象......)真的很可怕。

所以我想知道:

是否可以生成类似的子视图。
“我有这个表A,我希望子视图只包含FK指向A的表

我正在运行Oracle SQL Developer 4.0.3.16,但为了好的,我愿意安装另一个环境。

3 个答案:

答案 0 :(得分:1)

绝对是最好的。选择“根”表。右键单击,点击“选择邻居”告诉它要去多少级别。

选中这些项目后,再次右键单击,然后点击“从选中创建子视图”。

这是您的子视图。

子视图非常适合使大型模型更易于管理,以便于阅读,报告和搜索。

我谈了一下subviews here

答案 1 :(得分: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';

答案 2 :(得分:0)

在user_constraints中,您将找到所有约束。还有外键约束。你可以找到表格:

select table_name 
from user_constraints
where constraint_type = 'R'
  and r_constraint_name = 'primary key of A';