来自同一张桌子的2个外键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了来自同一张桌子的2个外键相关的知识,希望对你有一定的参考价值。

所以我正在尝试创建一个在线比萨订单系统。我的问题是在为交付人员创建表时,我应该只在交付人员表中使用cust_id还是我还应该包含cust_address

CREATE TABLE CUSTOMER
(
    cust_id varchar(7) not null,
    cust_name varchar(30) not null,
    cust_address varchar(40) not null,
    cust_num varchar(11) not null,
    order_id int,
    primary key(cust_id)


);

CREATE TABLE Delivery_Boy
(
    employee_id varchar(7) not null,
    cust_id varchar(7) not null,
    order_id int,
    primary key(employee_id),
    foreign key(order_id) references PIZZA_ORDER(order_id),
    foreign key (cust_id) REFERENCES Customer(cust_id)
);
答案

只有cust_id足够你可以通过使用cust_address加入两个表来获得cust_id

像这样

SELECT DB.cust_id,C.cust_name,C.cust_address,C.cust_num,C.order_id
FROM CUSTOMER C INNER JOIN Delivery_Boy DB
ON C.cust_id = DB.cust_id

以上是关于来自同一张桌子的2个外键的主要内容,如果未能解决你的问题,请参考以下文章

Django模型:如何避免在使用来自同一个表的2个外键时引用相同的记录

如何在 SQL Server 的表中添加 2 个外键?

Laravel 1 个外键,2 个表 Eloquent ORM

Yii2 GridView显示来自多个表的数据

创建具有主键和2个外键的表

Laravel Eloquent 用于数据透视表,一个表有 2 个外键,另一个表有 1 个外键