oracle - 如何从第三张表中的两个不同表中制作外键?
问题描述
我有三个名为:
Staff(id,name,address);
Members(id,name,address);
Plans(id,Userid,type);
我想为 Staff 和 Members 表从 Plans 外键创建 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>
推荐阅读
- operating-system - 虚拟内存中的页表项
- c# - 为什么 IsPresentItem 在链接列表中给我错误?
- regex - 正则表达式重定向 /year/month/post 到 /post
- kotlin - 如何配置杰克逊映射器
- c - 是否可以直接从 C 源代码传递 GCC 参数?
- android - 如何在android中为这两个表进行相同的活动登录
- javafx-2 - 禁用 JavaFx 组合框
- amazon-web-services - 适用于 SSM 获取参数的 AWS SAM 托管策略
- kotlin - 改造 2. 如果代码为 200,如何处理响应中的错误 JSON
- javascript - 转换 javascript 对象列表