有没有办法审核或保护我的数据免受不适合我业务的关系的影响?



我有几个关系(每周发现更多),我不想在我的数据库中。

例如:

如果另一个表中的另一个值被设置为true,则表Widget中的列A不能为null…

缺乏编码我自己的系统来审计我的数据库和输出报告,有什么好方法来处理这个?

我必须认为我不是第一个有业务约束的人,不能轻易地编入SQL Server…

注意:我不是在寻找一个执行系统。只是一个系统,让我知道什么时候违反了规则。

我的猜测是这些业务规则的数量有限,并且这些规则非常简单,就像您下面描述的那样。

在本例中,我只为每个业务规则创建一个存储过程,该存储过程将报告符合该规则的所有行。然后我每天或每周在某个时间运行所有这些计划,或者给我需要的数据。

现在,如果你真的有很多这样的存储过程,那么这种方法可能不是最好的,因为它会允许大量的维护,并且可能会在一次运行大量存储过程时出现问题。

您不应该将业务逻辑编码到数据库中,但如果您坚持,您可以查看触发器,这样在插入/更新时您可以执行检查或验证,然后允许插入,回滚或执行X

更新:

根据你何时以及多久需要被告知规则何时被打破,你可以做以下几件事中的一件,我想到这里有三个简单的方法来实现你所需要的

  1. 有一个运行在数据库之外的应用程序分析和报告违反
  2. 的依据
  3. 用SQL Server Agent创建一个作业,为您运行检查并提醒您
  4. 有一个触发器,提醒你每次违规发生

选项#1,一切都可以在db之外完成,我认为是最简单的,#2和#3,如果你只需要记录或插入一些数据到一些跟踪表可以很简单,如果你想要一个完整的"警报"系统,如电子邮件等,你可能需要涉及SQL CLR,如果你想做一些花,或者只是电子邮件,那么你也可以尝试SQL邮件

最新更新