我正在创建一个应用程序,在其中使用存储过程来实现我的逻辑。
现在我需要知道的是 - 我希望我的数据库不包含任何无效条目,为此我应该创建触发器,用于实现我的数据验证逻辑,以便当 FailPasswordAttemptCount 更改时到某个值,那么我应该通过触发器相应地在相应的 IsLocked 列中进行更改,还是将其留给 dba 来管理。
例如
if FailPassowrdAttemptCount > 3
IsCaptchaActivated=True
if FailPasswordAttemptCount>6
IsLocked=true
现在,如果 dba 将 FailPasswordAttemptCount 的值更改为 4,而不将 IsCaptchaActivated 更改为 true,那么这将为我的前端创建无效条目。 那么我应该通过触发器来管理它还是应该将其留给 dba 来进行正确的输入。
虽然这种类型的条目不可能通过前端进行,但如果任何人具有访问数据库的权限,则可以直接通过数据库进行更改。 为此,我应该将其留给用户还是应该通过触发器进行管理。 我想让我的数据库在所有情况下都保持一致。
最佳答案
我会做以下事情:
- 将数据验证逻辑放入存储过程
- 使存储过程成为应用程序与表交互的唯一方式
- 将所需的代码放入存储过程中。
随着应用程序业务逻辑复杂性的增加,基于触发器的编程范例变得越来越难以编码和维护。
但是,如果您绝对确定只会有这样的简单逻辑,则可以将其放入触发器中,因为这只需要对应用程序与数据库交互的方式进行最小的更改。
关于sql - 在这种情况下我应该如何工作。我应该使用触发器还是保留用户来管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1901466/