gpt4 book ai didi

sql - 引用复合主键

转载 作者:行者123 更新时间:2023-12-04 02:42:11 25 4
gpt4 key购买 nike

我有两个表,每个表都有一个复合主键。

一个属性在两个复合主键中。

我应该如何引用公共(public)属性?我只是在下面的两个表中将其作为 FK 引用吗?下面的 cust_id 和 flight_id 也是复合键的一部分,并引用其他表中的主键。 (忽略 br_flight 表的 erd 中的第三个属性,因为我最后选择使用复合键)。

CREATE TABLE BOOKING_REFERENCE (
REFERENCE_ID NVARCHAR(10) NOT NULL,
CUST_ID NUMBER(10)NOT NULL,
STATUS NVARCHAR (1), NOT NULL,
PRIMARY KEY(REFERENCE_ID, CUST_ID),
FOREIGN KEY(REFERENCE_ID) REFERENCES BR_FLIGHT(REFERENCE_ID):
FOREIGN KEY (CUST_ID) REFERENCES CUSTOMER(CUST_ID);


CREATE TABLE BR_FLIGHT (
REFERENCE_ID NVARCHAR(10) NOT NULL ,
FLIGHT_ID NVARCHAR (10) NOT NULL,
PRIMARY KEY(REFERENCE_ID, FLIGHT_ID),
FOREIGN KEY (REFERENCE_ID) REFERENCES BOOKING_REFERENCE(REFERENCE_ID)
FOREIGN KEY (FLIGHT_ID) REFERENCES FLIGHT(FLIGHT_ID)

);

enter image description here

上面的sql可以吗??
在此先感谢并为劣质图道歉:)

最佳答案

外键必须与它们引用列的主键/唯一键匹配。由于BOOKING_REFERENCE的主键|是( REFERENCE_ID , CUST_ID ),这意味着来自 BR_FLIGHT 的外键至BOOKING_REFERENCE也必须由 2 列组成。这意味着您需要添加 CUST_IDBR_FLIGHT表 - 或者你的 BOOKING_REFERENCE主键是错误的,应该只是( REFERENCE_ID )。

也就是说,像你一样在两个方向上定义外键是没有意义的。 “子”表应引用“父”,反之亦然。

关于sql - 引用复合主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16323676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com