如何在外键上连接三列?

问题描述

我有 3 个实体。 Books、Students 和“Borrow”(我不知道这在英语中是否有意义)。

在 Books 上,我需要插入一个列,其中包含借用 ID、日期和拿走这些书的学生。所以,这一列是一个外键,但是,我怎样才能将这三列合二为一呢?这可能吗?

我认为类似,但我知道这是不正确的:

LOCALIZADOR     VARCHAR2(?),CONSTRAINT  “PK_BOOK” PRIMARY KEY(ISBN),CONSTRAINT “FK_BOOK.CODEDATE”   FOREIGN KEY(LOCALIZADOR CODIGO  DATE_BORROW)               
                                    REFERENCES(BORROW,STUDENT,BORROW)
                                    ON DELETE CASCADE

解决方法

您需要一个外键来建立通常在一个表和(通常)另一个表中的主键之间的关系。因此,听起来您需要一个从 LOCALIZADORBOOKS 的外键以确保它是有效的图书 ID,另一个到 STUDENTS 以确保它是一个有效的学生 ID。我认为您不会将借用日期作为外键的一部分,因为它不是不同表的一部分。

您只向我们展示了一张桌子的一部分,所以我不确定其他桌子的样子。我想你想要这样的东西:

constraint fk_book foreign key ( book_id )
    references books.book_id
constraint fk_student foreign key ( student_id )
    references students.student_id