2

在数据库中,我有一个基表,命名为Organization大多数表都有外键。假设这低于 ERD:

数据库 ERD

如您所见,Organization表有一个名为is_enabled. 现在如果我想禁用Organization,我应该设置is_enabled1。这很简单,但问题是如果我想阻止所有其他过程和函数使用 disabled Organization,我应该trigger在所有具有表外键引用的Organization表上定义,这种方式很糟糕。

有没有另一种方法可以防止所有对象使用 disabled Organizations?也用于插入或更新数据,例如,如果我有一个Organization带有org1的标题,并且如果它有一个Department带有dep1的名称,在我禁用org1之后,我无法更新dep1名称,并且所有具有引用的表都存在此问题到Organization.

4

1 回答 1

0

如果您想阻止用户更改禁用组织的数据,这应该在您的代码中 -在存储过程或应用程序代码中。您可以在用户界面中设置一些逻辑或限制,以防止对禁用组织进行更改(实际实施取决于您的要求)。

我在评论中遇到的另一个问题(正如 Bob Jarvis 所提到的)是,为什么你有 800 个带有组织 ID 的表?这似乎没有正常化。

例如,为什么一个人直接链接到组织表?他们可以链接到部门表,该表有自己的组织链接吗?

于 2017-08-27T22:29:15.773 回答