关于MySQL的不相交专业化的级联删除

时间:2016-09-02 12:02:54

标签: mysql database-design

我有以下数据库模型:

具有不相交类型的“实体”(基础数据库实体):

  • “人”
  • “组”
  • “项目”
  • ......还有一些......

(我希望我正确使用术语,但我的意思是说实体应该始终是个人,团体或项目。)这些是由相应的表实现的:

  • entity(id,...)
  • person(删除级联上的更新cascase上的fk entity_id,...)
  • group(删除级联上的更新cascase上的fk entity_id,...)
  • 项目(删除级联上的更新cascase上的fk entity_id,...)

当我删除实体行时,删除会被级联到(比方说)人行上。但是,当我删除一个人行时,它不会被级联到实体行。有很多数据绑定到实体表,因此我希望确保DB始终保持一致(即删除不相交类型行时删除实体行)。

我看到的唯一建议是在基础(实体)表中包含反向引用FK,这将是繁琐的(现在有6种实体类型,可能会有更多)。

这样做的干净方法是什么?触发器?

0 个答案:

没有答案