我想知道是否有一种方法可以在 MySQL 数据库的单个字段中包含多个值,其中每个值都是引用另一个表的外键。
我正在设计一个包含产品表和产品认证表的数据库。
我正在使用 InnoDB 和外键约束。
“产品”表包含有关产品特定实例的详细信息。产品表中包含的详细信息之一是“product_certification_id”列,它是引用两列“product_certification”表中索引的外键。
产品认证表包含产品实例可能具有的可能认证。
我的问题源于产品认证并不相互排斥的事实,所以我很好奇是否可以在引用同一个表的同一字段中拥有多个外键值。
另外,我担心将来可能会添加更多认证,因此从这个意义上讲,我需要以易于扩展的方式进行设计。
谢谢你的想法。
您通常要做的是与中间链接表建立多对多关系。有些事情像下面这样:
CREATE TABLE product (
`id` integer AUTO_INCREMENT NOT NULL,
-- other cols --
PRIMARY KEY (`id`)
);
CREATE TABLE certification (
`id` integer AUTO_INCREMENT NOT NULL,
-- other cols --
PRIMARY KEY (`id`)
);
CREATE TABLE product_certification (
`product_id` integer NOT NULL,
`certification_id` integer NOT NULL,
PRIMARY KEY (`product_id`, `certification_id`),
CONSTRAINT `product_id_product_id`
FOREIGN KEY (`product_id`)
REFERENCES `product` (`id`) ON DELETE CASCADE,
CONSTRAINT `certification_id_certification_id`
FOREIGN KEY (`certification_id`)
REFERENCES `certification` (`id`) ON DELETE CASCADE
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)