想象一下存储书名和作者的数据库。当我删除书名时,我也想删除作者 - 但前提是他们没有其他与之相关的书名。
有办法吗?
或者,或许,您可以推荐我如何以不同的方式构建我的表来解决这个问题。这是一个应用程序的简化示例,我负责数据建模;也许通过询问上述问题,我的数据显然很差。
答案 0 :(得分:1)
这是“鸡蛋和鸡蛋”数据建模方案之一,例如需要员工的部门,以及部门经理是部门中的员工。通常,你会认为作者是“父母”,因为它可以有很多书,书必须是作者;但如果没有他们撰写的书,他们就不是作家。
所以它并不是一个糟糕的结构,而是你所代表的关系的复杂性。 CASCADE不适合您;但您可以在“书籍”表格上使用AFTER DELETE触发器来检查已删除书籍的作者是否有剩余书籍,如果不存在则将其删除。