繁体   English   中英

是否可以在一个表中引用一个主键作为跨越两个以上表的外键约束?

[英]Is it possible to reference a primary key in one table as a foreign key constraint across more than 2 tables?

我目前正在通过phpmyadmin服务器使用sql在机场上建立数据库后端系统。 该标准并不意味着是完美的,但查询背后的想法之一是想象客户或航班调度员可能正在查看表格。 我想知道是否有可能在两个或更多表中将主键作为外键引用。 在下面的示例中,我想在底部的2个表中将型号作为外键引用。 我确保类型和字符数相同。

    CREATE TABLE Aircraft_Model
    (Model_Number varchar (12) NOT NULL,
    seat_capacity int (3),
    CONSTRAINT pk7 primary key (Model_Number));

    CREATE TABLE Licence_type
    (Rank varchar (25) NOT NULL,
    Model_Number varchar (12),
    CONSTRAINT pk9 primary key (Rank));

    CREATE TABLE Aircraft
    (Aircraft_ID varchar (4) NOT NULL, 
    Model_Number varchar(12),
    airport_base text(13),
    CONSTRAINT pk1 PRIMARY KEY (Aircraft_ID));

这可能吗? 我只希望数据库能够执行约12-15个简单查询。

添加外键的语法会是这样吗?

ALTER TABLE Aircraft
ADD CONSTRAINT fk1 FOREIGN KEY(Model_Number)
REFERENCES Aircraft_Model

从单独的表(如Licence_type)中引用的同一外键是否需要添加单独的约束,还是可以从具有相同fk1编号的同一表中添加?

我想知道是否有可能在两个或更多表中将主键作为外键引用。

如果您的意思是“两个或多个表是否可以具有引用同一列的外键?”,那么可以。 这似乎就是您的意思,但这并不是大多数人谈论“跨2个或更多表的外键”时的意思。

声明两个不同的独立约束。

ALTER TABLE Aircraft
ADD CONSTRAINT fk1 FOREIGN KEY(Model_Number)
REFERENCES Aircraft_Model (Model_Number);

ALTER TABLE License_Type
ADD CONSTRAINT fk2 FOREIGN KEY(Model_Number)
REFERENCES Aircraft_Model (Model_Number);

暂无
暂无

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

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