微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我有三个表命名为:

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>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。