如何从第三张表中的两个不同表中制作外键?
Posted
技术标签:
【中文标题】如何从第三张表中的两个不同表中制作外键?【英文标题】:How to make foreign key from two different table in third table? 【发布时间】:2021-09-01 12:55:19 【问题描述】:我有三个表命名为:
Staff(id,name,address);
Members(id,name,address);
Plans(id,Userid,type);
我想为 Staff 和 Members 表从 Plans 外键创建 Userid 我该怎么做?
【问题讨论】:
我正在使用 SQL PLUS 和 oracle 11g 【参考方案1】:嗯……不是那样的。
员工和成员应存储在同一个表中,并附加列(和要引用的表)来说明某人是“员工”还是“成员”。那么plans
表就没有问题了。
SQL> create table type_sm
2 (id_sm number constraint pk_tsm primary key,
3 name varchar2(20) constraint ch_typ check (name in ('staff', 'member'))
4 );
Table created.
SQL> create table staff_members
2 (id_sta_mem number constraint pk_stamem primary key,
3 id_sm number constraint fk_sm_typ references type_sm (id_sm),
4 name varchar2(20),
5 address varchar2(30)
6 );
Table created.
SQL> create table plans
2 (id_pla number constraint pk_pla primary key,
3 id_sta_mem number constraint fk_plastamem references staff_members (id_sta_mem)
4 );
Table created.
SQL>
【讨论】:
以上是关于如何从第三张表中的两个不同表中制作外键?的主要内容,如果未能解决你的问题,请参考以下文章