场景:用户可以创建一个关系类型,比如Friends,然后用户可以链接一些其他用户作为关系定义。如果用户被删除,关系定义也应该被删除,用户之间的关系也需要被删除。
这是 sql server 上的演示数据库设计:http: //i.stack.imgur.com/3pcOy.png 外键是:
- 表 2.UserId 参考表 1.UserId;
- 表 3.RelationShipId 参考表 2.RelationshipId;
- 表 3.UserId 参考表 1.UserId;
- 表 3.OtherUserId 参考表 1.UserId;
我的目标是当从表1中删除记录时,它将删除表2和表3中的相关记录;删除表 2 中的记录时,会删除表 3 中的相关记录。
当我尝试使用“ON DELETE CASCADE”时,出现错误“可能导致循环或多个级联路径”,我也不想使用触发器。
你对这种情况有什么建议吗?谢谢,