我目前用的是pl/sql对数据库进行操作,数据库中大概有几百张表,我想看看这些表之间有没有关联关系(我需要用到的两张表有没有关联关系以及是通过那些字段关联的)。我试着用网上的方法:新建一个diagram window,然后把我想查看的两张表托进去,问题我看不太懂这里面的关系。望各位大神告知啊。
select a.constraint_name, a.table_name, b.constraint_name
from dba_constraints a, dba_constraints b
where a.constraint_type = 'R'
and b.constraint_type = 'P'
and a.r_constraint_name = b.constraint_name and a.owner='SCOTT';
你可以用软件 PowerDesigner 查看各表之间的关系。
一般情况下都是_id进行两个表的关联,你可以看看
1.首先Oracle数据库只是一个关系型数据库,当两个表创建的时候是不存在关联关系的。
2.两个表建立起来连接是通过表里的字段进行联系的,举例说明正常表的字段命名,如果用户表fnd_user(user_id,user_name)表和用户权限表 user_authority(auth_id,user_id,auth_name)
然后我们使用的时候用user_id进行关联起来。
3.表与表之后的关联关系要放到应用场景中进行考虑。可能会容易理出来。
你可以在Navicat里面点击查看ER图标,有关联的会有线相连。
是否存在关联,这要看设计表的人是如何设计的;
如果使用了外键,那么直接通过外键就可以看出是否存在关联;
如果没有使用外键,而是要根据列名机规则了,比如:
用户表(id, name, time),登录记录表(id,用户表_id,ip,time),
注意到字段“用户表_id”了吧,如果是外键(注意:这里称作外键,但并在数据库中建立外键约束)则添加表名前缀。