繁体   English   中英

具有多个主键的表的外键

[英]foreign key to a table having more than one primary key

这是我的双主键表

create table order_mattress
(
order_number int,
mattress_id int ,
primary key (order_number,mattress_id) 
);

这是我的第二张桌子

create table mattress
(
mattress_id int IDENTITY(1,1) PRIMARY KEY,
mattress_name varchar(25)
);

我想将表中的mattress_id作为表order_mattress中的matsic_id的外键,这怎么可能,没有问题,因为第一个表中有双主键

我将其更改为具有3个表而不是2个表:

简单的订单表可保存唯一的订单号:

create table orders
(
    order_number int IDENTITY(1,1) PRIMARY KEY,
);

可容纳所有独特床垫的床垫桌:

create table mattress
(
    mattress_id int IDENTITY(1,1) PRIMARY KEY,
    mattress_name varchar(25)
);

订购床垫表,然后用外键将床垫链接到订购。

create table order_mattress
(
    order_number int FOREIGN KEY REFERENCES orders(order_number),
    mattress_id int FOREIGN KEY REFERENCES mattress(mattress_id)
);

您输入的方向有误-如果mattress表描述了床垫,则mattress_order表应具有外键:

ALTER TABLE order_mattress
ADD FOREIGN KEY (mattress_id)
REFERENCES mattress(mattress_id)

另一个方向的确是不可能的,因为mattress_id order_mattressorder_mattress不是唯一的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM