0

我正在尝试在博客和图像之间建立关系,其中博客最多可以有一个图像(像头像一样思考),但它也可以没有。因此,我将外键放在 blogs 表中。我试图在图像表上创建一个约束,如果博客被删除,它的关联图像也会从数据库中删除。但是,当外键不在应该级联的表中时,我不确定如何创建约束。这是我的表格,减去那些不相关的字段:

CREATE TABLE `blogs` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `image_id` int(10) unsigned default NULL,
  PRIMARY KEY  (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=921 DEFAULT CHARSET=utf8;

CREATE TABLE `images` (
  `id` int(10) unsigned NOT NULL auto_increment,
  PRIMARY KEY  (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=251021 DEFAULT CHARSET=utf8 

有什么帮助吗?

4

1 回答 1

0

将图像放在单独的表中的唯一原因是,如果同一图像可以由多个博客共享。在这种情况下,您无论如何都不想在级联上删除。您将需要特殊的逻辑来确定是否没有留下引用该图像的博客来删除它——这是您无法通过 DDL 执行的操作。

相反,只需将图像值设置为表上的可为空列blogs

于 2013-09-20T17:07:27.757 回答