【发布时间】:2011-06-27 05:17:16
【问题描述】:
让我们假设以下对象是 SQL 中的表:
Companies-
Employees(指公司) -
Meetings(也指公司)
员工可以参加会议,所以我们有一个链接表:
-
EmployeeMeetings(即对员工和会议的 FK)
此外,我无法触摸 Companies 表(例如,对此没有触发器)。我想要的是:
- 如果公司被移除,所有员工都会被移除
- 如果公司被删除,所有会议都会被删除
- 如果员工或会议被删除,所有
EmployeeMeeting记录都会被删除
不幸的是,我被困住了,因为这会引发可怕的“可能导致循环或多个级联路径”。鉴于限制,如何解决这个问题?我想我什至不能同时放入两个 FK,或者存在删除公司后无法删除员工或会议的风险,因为 EmployeeMeetings 中的 FK 会阻止这种情况。对吧?
【问题讨论】:
-
触发器是否被完全禁止,或者您是否允许在
Employees和Meetings上使用触发器?
标签: sql-server database-design foreign-keys cascade cascading-deletes