我的要求是拥有一张产品表,这些产品不能同时拥有类似的供应商,产品和版本。
但是,我还希望通过其主键在另一个表上引用此表,就像我使用unique
的不同供应商产品版本一样。
create table Products
(
vendor varchar(100),
product varchar(100),
version varchar(30),
unique (vendor, product, version, cve)
);
但是这样我就不能通过product_id
来引用它了,正如我想要的那样:
create table Product_cve(
product_id int,
cve varchar(14),
foreign key (product_id) references Products(product_id),
foreign key (cve) references VulnerabilitiesCVE(cve)
);
,我能做的另一件事是
create table Products
(
product_id int NOT NULL AUTO_INCREMENT,
vendor varchar(100),
product varchar(100),
version varchar(30),
primary key (product_id)
);
这样,我最终会有重复的产品...
答案 0 :(得分:0)
解决方案很简单:
create table Products
(
product_id int AUTO_INCREMENT
vendor varchar(100),
product varchar(100),
version varchar(30),
UNIQUE(vendor, product, version, cve),
PRIMARY KEY (product_id)
);