0

我正在考虑重写应用程序的数据模型更新方法的一部分,以包括对注册来自数据库的事件的支持。有什么理由说明这是一个坏主意吗?我应该限制自己接收由 CRUD 操作触发的事件,还是可以围绕事件通知编写更多业务逻辑?潜在的陷阱是什么?

4

2 回答 2

2

绝对使用异步方法。如果您使用的是 Microsoft SQL 平台,请查看以下组合

1) 更改跟踪可用 SQL 版本 > 2008:http: //msdn.microsoft.com/en-us/library/cc280462.aspx

2) SQL Service Broker,您可以使用它注册事件。(1. 实际使用 2. 引擎盖下 IIRC):http: //msdn.microsoft.com/en-us/library/ms345108 (SQL.90).aspx

如果您必须恢复使用触发器,请务必将触发器的影响保持在较低水平。例如,创建您自己的更改日志并从其他地方处理它。不要编写更新并找出谁在与更改本身相同的触发器中提供信息。它会大大减慢您的查询速度。

根据您使用的数据层技术,还有一些选项:NHibernate 有拦截器的概念,在企业框架方面也是如此。但它们不在数据库中运行,这有利有弊。

HTH 亚历克斯

于 2009-10-03T11:16:31.223 回答
0

听起来您正在考虑对业务逻辑中的数据库事件做出反应。如果是这样,这确实是一个非常糟糕的主意,忽略几乎所有通常被认为是好的软件设计(分层,关注点分离等)......

于 2009-10-03T10:11:21.210 回答