InnoDB один (или нет), чтобы одна проблема отношения - PullRequest
0 голосов
/ 05 марта 2009

У меня есть две таблицы:

альтернативный текст 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, конечно, приводит к ошибке.

Теперь я могу просто удалить ссылку, но я уверен, что есть правильный способ справиться с этой ситуацией.

1 Ответ

2 голосов
/ 05 марта 2009

Сейчас я не уверен, позволяет ли это MySQL, но я думаю, что следующее может решить вашу проблему:

`car_id_FK` int(11) DEFAULT NULL,
...