如何从第三个表中的两个不同表制作外键?

问题描述

我有三个表命名为:

Staff(id,name,address);
Members(id,address);
Plans(id,Userid,type);

我想从计划外键为 Staff 和 Members 表创建 Userid 我该怎么做?

解决方法

嗯……不是那样的。

员工和成员应该存储在同一个表中,并有额外的列(和要引用的表)说明某人是“员工”还是“成员”。那么 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>