【发布时间】:2017-05-05 01:06:26
【问题描述】:
想象一个存储书名和作者的数据库。当我删除书名时,我也想删除作者 - 但前提是他们没有与之关联的其他书名。
有没有办法做到这一点?
或者,也许,您可以推荐我如何以不同的方式构建表格来解决这个问题。这是我负责数据建模的应用程序的简化示例;也许通过提出上述问题,我的数据结构显然很糟糕。
【问题讨论】:
-
这里的父表是哪一个?您必须在代码中编写此逻辑。数据库可能不提供级联删除的自定义逻辑?
-
这不是一对一的关系,而是一对多的关系,因为一个作者可以有很多本书。你不能用级联来做到这一点,你可以用触发器来做到这一点。
-
虽然你是绝对正确的 Barmar,但我使用一对一是为了给场景贴上标签(将一对一描述为“如果我要删除的书是最后一本书与作者的关系”)理论上可以触发级联钩子。 Uueerdo 向我介绍了 AFTER DELETE 触发器的概念,这听起来是我的场景的最佳解决方案。
标签: mysql data-modeling delete-row one-to-one