gpt4 book ai didi

mysql - 主键是否可以由一个表或另一个表确定?

转载 作者:行者123 更新时间:2023-11-29 15:27:15 24 4
gpt4 key购买 nike

我所处的场景是两个子表(视觉和听觉设备)将接收有关父(设备)表的数据,并且我需要在视觉设备或听觉设备中定义的主键(ID)设备表要设置为父表中的主键(也是 ID)。我不知道如何实现这一点。我在想是否可以使用 IF 条件?

CREATE TABLE w1742302_visual_Device (
deviceCatalogID varchar(5),
frBrand varchar(20),
frModel varchar(20),
lensSerialN varchar(20),
lensVisionType varchar(20),
lensTint set('1','2','3'),
lensThinnessLevel set('1','2','3'),

CONSTRAINT pk_visionDevice_catalogID PRIMARY KEY (deviceCatalogID);
);
CREATE TABLE w1742302_hearing_Device (
deviceCatalogID varchar(5),
hdMake varchar(20),
hdModel varchar(20),

CONSTRAINT pk_hearingDevice_catalogID PRIMARY KEY (deviceCatalogID)
);
CREATE TABLE w1742302_device (
deviceCatalogID varchar(5),
deviceCatalogName varchar(20),
deviceDescription varchar(300),
availabilityStatus boolean,

CONSTRAINT pk_device_catalogID PRIMARY KEY (deviceCatalogID)
CONSTRAINT fk_device_catalogID PRIMARY KEY (deviceCatalogID) references ????
);

注意引用文献???是因为我不知道该放什么东西

最佳答案

我认为你实际上想要相反的东西。

您应该让子表引用父表的主键。在我看来,这似乎是在数据中表示父/子关系的正确方法(即 child 总是有 parent )。

CREATE TABLE w1742302_device (
deviceCatalogID varchar(5),
deviceCatalogName varchar(20),
deviceDescription varchar(300),
availabilityStatus boolean,
CONSTRAINT pk_device_catalogID PRIMARY KEY (deviceCatalogID)
);

CREATE TABLE w1742302_hearing_Device (
deviceCatalogID varchar(5),
hdMake varchar(20),
hdModel varchar(20),
CONSTRAINT pk_hearingDevice_catalogID PRIMARY KEY (deviceCatalogID),
CONSTRAINT fk_hearingDevice_catalogID FOREIGN KEY (deviceCatalogID)
REFERENCES w1742302_device(deviceCatalogID)
);

CREATE TABLE w1742302_visual_Device (
deviceCatalogID varchar(5),
frBrand varchar(20),
frModel varchar(20),
lensSerialN varchar(20),
lensVisionType varchar(20),
lensTint set('1','2','3'),
lensThinnessLevel set('1','2','3'),
CONSTRAINT pk_visionDevice_catalogID PRIMARY KEY (deviceCatalogID),
CONSTRAINT fk_visionDevice_catalogID FOREIGN KEY (deviceCatalogID)
REFERENCES w1742302_device(deviceCatalogID)
);

<强> Demo on DB Fiddlde

关于mysql - 主键是否可以由一个表或另一个表确定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59002431/

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