按关系划分的 Oracle 关系模型子视图
Oracle relational model subview by relations
我有一个相当大的 oracle 数据库,50 多个表,大量的关系。
我生成的关系模型看起来(你可以想象..)真的很可怕。
所以我想知道:
是否可以生成子视图,例如
"I have this table A and I want the subview to include only tables that have FK's pointing at A"
我是运行 Oracle SQL Developer 4.0.3.16,不过为了好看,我愿意再安装一个环境
ALL_CONSTRAINTS
table 包含各种约束,包括外键。外键的约束类型是 'R'
as Referential(或 Referenced)。
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';
在 user_constraints 中,您会找到所有限制条件。还有外键约束。您可以通过以下方式找到 table:
select table_name
from user_constraints
where constraint_type = 'R'
and r_constraint_name = 'primary key of A';
绝对是。 Select 你的 'root' table。右击,点击 'select neighbors' 告诉它要走多少层。
选中这些项目后,再次右键单击,然后点击 'create subview from selected.'
这是您的子视图。
子视图非常适合使大型模型在可读性、报告和搜索方面更易于管理。
我讲一下subviews here。
我有一个相当大的 oracle 数据库,50 多个表,大量的关系。 我生成的关系模型看起来(你可以想象..)真的很可怕。
所以我想知道:
是否可以生成子视图,例如
"I have this table A and I want the subview to include only tables that have FK's pointing at A"
我是运行 Oracle SQL Developer 4.0.3.16,不过为了好看,我愿意再安装一个环境
ALL_CONSTRAINTS
table 包含各种约束,包括外键。外键的约束类型是 'R'
as Referential(或 Referenced)。
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';
在 user_constraints 中,您会找到所有限制条件。还有外键约束。您可以通过以下方式找到 table:
select table_name
from user_constraints
where constraint_type = 'R'
and r_constraint_name = 'primary key of A';
绝对是。 Select 你的 'root' table。右击,点击 'select neighbors' 告诉它要走多少层。
选中这些项目后,再次右键单击,然后点击 'create subview from selected.'
这是您的子视图。
子视图非常适合使大型模型在可读性、报告和搜索方面更易于管理。
我讲一下subviews here。