2009-03-05 62 views
0

我有两个表:InnoDB的一个(或无),以一对一的关系问题

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的轮胎当然会引发错误。

现在我可以简单地删除引用,但我确定有处理这种情况的正确方法。

回答

2

我现在如果MySQL允许这个我不知道,但我认为以下可以解决你的问题:

`car_id_FK` int(11) DEFAULT NULL, 
+0

这样一个快速和简单的答案我几乎羞于不得不问吧。我坐在这里搔了搔头,已经有一段时间了。 工作完美,非常感谢。 – Mike 2009-03-05 13:29:28