我有两个表,每个表都有一个复合主键。
其中一个属性在两个复合主键中都出现。
我应该如何引用这个共同的属性?我只需要在两个表中都将其作为外键引用吗?如下所示,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)
);
上面的 SQL 语句有效吗?感谢您的帮助并为糟糕的图表表示歉意。:)