我有两张桌子:
alt text http://img.zoodia.com/pics/643d0c93d59782ae16c0fbb85cabdb88.png
CREATE TABLE `Car` ( `car_id` int(11) NOT NULL AUTO_INCREMENT, `car_name` varchar(25), PRIMARY KEY(`car_id`) ) ENGINE=INNODB;
CREATE TABLE `Tire` ( `tire_id` int(11) NOT NULL AUTO_INCREMENT, `tire_size` int(11), `car_id_FK` int(11) NOT NULL DEFAULT '0', PRIMARY KEY(`tire_id`), CONSTRAINT `Ref_Car_Has_tire` FOREIGN KEY (`car_id_FK`) REFERENCES `Car`(`car_id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=INNODB;
我的问题是轮胎不一定属于汽车,可能会有额外的轮胎只是坐在那里。试图在没有合适的car_id的情况下创建轮胎当然会引发错误。
现在我可以简单地删除引用,但我确信有一种正确的方法来处理这种情况。
答案 0 :(得分:2)
我现在不确定MySQL是否允许这样做,但我认为以下内容可以解决您的问题:
`car_id_FK` int(11) DEFAULT NULL,