The*_*rff 6 c# database ado.net odp.net
假设我有一些带有数据库的应用程序A. 现在我想添加另一个应用程序B,它应该跟踪应用程序A的数据库更改.应用程序B应该在数据发生变化时进行一些计算.两个应用程序之间没有直接通信.两者都只能看到数据库.
基本问题是:数据库中的某些数据发生了变化.如何触发一些C#代码在这些更改上做一些工作?
为了给出答案的一些刺激,我提到了一些我正在考虑的方法:
什么方法更有利?也许我已经错过了上述方法中的一些主要(dis)优势?也许还有其他一些我没有想到的方法?
编辑1:数据库独立性是...让我们称之为"销售人员"的一个因素.我可以使用SqlDependency或OracleDependency.对于DB2或其他数据库,我可以回退到轮询方法.这只是成本和收益的问题,我想至少考虑一下,以便我可以讨论它.
我会选择#1。实际上,流量并不像您想象的那么多。如果您的数据不经常更改,您可能会对它持悲观态度,并且只获取那些让您对表更改表示赞成或反对的内容。
如果您在设计模式时考虑到轮询,那么每次轮询可能不会真正产生那么多的点击率。
如果您只添加记录而不更改记录,那么检查特定表上的最高 ID 可能就足够了。
如果您要全部更新它们,那么您可以存储时间戳列并为其建立索引,然后查找最大时间戳。
您可以发送一个 ubber 查询(有效地)轮询多个表并返回已更改表的列表。
这个答案中没有什么特别聪明的,我只是想表明#1 可能并不像乍看起来那么糟糕。
归档时间: |
|
查看次数: |
5918 次 |
最近记录: |