让我们假设以下对象是 SQL 中的表:
Companies
Employees
(指公司)Meetings
(也指公司)
员工可以参加会议,所以我们有一个链接表:
EmployeeMeetings
(即对员工和会议的 FK)
此外,我无法触摸 Companies 表(例如,对此没有触发器)。我想要的是:
- 如果公司被移除,所有员工都会被移除
- 如果公司被删除,所有会议都将被删除
- 如果员工或会议被删除,所有
EmployeeMeeting
记录都会被删除
不幸的是,我被困住了,因为这会引发可怕的“可能导致循环或多个级联路径”。鉴于限制,如何解决这个问题?我想我什至不能同时将两个 FK 都放入,否则存在删除公司后无法删除员工或会议的风险,因为 FKEmployeeMeetings
会阻止这种情况发生。正确的?