0

私は2つのテーブルを持っています:

代替テキスト 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`)
)
エンジン=INNODB;
CREATE TABLE `タイヤ` (
  `tire_id` int(11) NOT NULL AUTO_INCREMENT,
  `tyre_size` int(11),
  `car_id_FK` int(11) NOT NULL デフォルト '0',
  PRIMARY KEY(`タイヤID`),
  CONSTRAINT `Ref_Car_Has_tire` FOREIGN KEY (`car_id_FK`)
    リファレンス `Car`(`car_id`)
    削除時アクションなし
    更新時 アクションなし
)
エンジン=INNODB;

私の問題は、タイヤが車に属している必要はなく、余分なタイヤが単に座っている可能性があることです。もちろん、適切な car_id なしでタイヤを作成しようとすると、エラーがスローされます。

これで、参照を簡単に削除できましたが、この状況を処理する適切な方法があると確信しています。

4

1 に答える 1

2

MySQL でこれが許可されているかどうかはわかりませんが、次の方法で問題を解決できると思います。

`car_id_FK` int(11) DEFAULT NULL,
于 2009-03-05T13:21:56.557 に答える