您应该为此使用参考表。
确保你的表使用 InnoDB,这样你就可以使用真正的外键
参考表将主要包含参考表的 KEYS 以及一些相关的元数据。
简单的例子:
CREATE TABLE `stackoverflow`.`users` (
`id` INT NOT NULL AUTO_INCREMENT ,
`username` VARCHAR(45) NOT NULL ,
`fname` VARCHAR(45) NOT NULL ,
`lname` VARCHAR(45) NOT NULL ,
`cdate` DATETIME NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB;
CREATE TABLE `stackoverflow`.`products` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NOT NULL ,
`price` INT NOT NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB;
现在是带有真实 FK 的参考表:
CREATE TABLE `stackoverflow`.`user_likes_product` (
`id` INT NOT NULL AUTO_INCREMENT ,
`id_user` INT NOT NULL ,
`id_product` INT NOT NULL ,
`time` DATETIME NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_user` (`id_user` ASC) ,
INDEX `fk_product` (`id_product` ASC) ,
CONSTRAINT `fk_user`
FOREIGN KEY (`id_user` )
REFERENCES `stackoverflow`.`users` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_product`
FOREIGN KEY (`id_product` )
REFERENCES `stackoverflow`.`products` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
另一个开始使用 mysql 的建议(如果你在 Windows 上):
下载使用Mysql Workbench。