首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Oracle数据库中创建链接表

如何在Oracle数据库中创建链接表
EN

Stack Overflow用户
提问于 2012-09-22 22:09:49
回答 1查看 284关注 0票数 1

我第一次创建了一个模拟数据库。我已经创建了由多对多关系组成的关系模型。在关系模型中,它有一个单独的链接/连接表。在创建数据库时,我是否也需要将此链接表创建为一个单独的表?或者我可以只把每个外键放在多对多的表中?

如果我需要一个单独的表,我如何通过语法将这些表链接在一起?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-23 00:27:31

我们只能以一对多的方式构建外键。所以你需要这个交叉表。它是我们在将逻辑数据模型转换为物理数据模型时引入的一种附加结构。

交叉表通常只有两列,即您希望以M:N方式链接的两个表的引用键(也可能有一些元数据列来保存链接的属性)。它通常在两列上有一个复合主键,以避免冗余。它在每个被引用的表上都有一个外键,这些表必须在被引用的列上定义了主键。

语法非常明显;这个示例构建了两个主表和一个仅定义键的交叉点。

代码语言:javascript
代码运行次数:0
运行
复制
create table m1 (
   id number not null
   , constraint m1_pk primary key (id) );


create table m2 (
   id number not null
   , constraint m2_pk primary key (id) );


create table intersection_t (
   m1_id number not null
   , m2_id number not null
   , constraint int_pk primary key (m1_id, m2_id)
   , constraint int_m1_fk foreign key (m1_id)
         references m1 (id)
   , constraint int_m2_fk foreign key (m2_id)
         references m2 (id)
 );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12544472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档