我有两个表(MS SQL Server 2005)和一个现有的应用程序(除了索引等,不允许更改数据库)。
这两个表是:
ActivityDetails (Primary table)
ActivityDetailkey (Primary key)
SubActivities (Child table)
ActivityDetailKey (Refers to ActivityDetails)
现在,SubActivities
对于ActivityDetailKey
. 基本上,对于每一ActivityDetail
行,可以有很多SubActivities
行,并且没有什么可以阻止用户删除ActivityDetails
一行并留下SubActivities
孤立的行。
应用程序中应该有一些“软锁”可以防止这种情况发生,但它不起作用,我也想在 DB 层中提供更好的完整性。
但我似乎无法添加外键,因为SubActivities
'ActivityDetailKey
列不是唯一的。
ActivityDetails
如果有孩子在场,如何防止人们删除行?
谢谢
编辑
我为复杂性道歉。该SubActivities
表实际上名为TEDetailSubActivities
. 我在问题中更改了它,以便更容易阅读。
但无论如何,这里是两个表的完整架构的要点。
https://gist.github.com/840479
我很感激任何帮助。