我有两个表(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
我很感激任何帮助。