从我所听说过的'Observer-Observable'模式,有人能告诉我是否有任何方法不需要在编程语言中创建一个Observable,而是数据库(其中我们的表是哪个正在观察)他自己告诉Observable数据库中有变化,然后Observable通知所有观察者。因此,没有程序每次都能感知数据库。
答案 0 :(得分:1)
使用数据库触发器。
根据作为存储过程的数据库,很可能您可以从那里向应用程序提供的端口发出HTTP请求。
但问题是:你真的需要一个DB级别的观察者,因为这是非常糟糕的做法,你不能写一个服务前端并在那个级别上实现监听/观察吗?
答案 1 :(得分:1)
有不同的可能性,例如,从Oracle,您可以从触发器/ SP启动Java程序/代码。其他DB中也可能存在一些类似的功能。但这取决于你想对这一变化做些什么。
通常,应用程序应该查询数据库的当前状态,并确定如何通知用户预期状态和观察状态之间的不一致。在我看来,总是保持数据库的当前视图会产生过多的开销。
如果您想要执行某些特定操作的电子邮件...可能需要触发程序或存储过程。如果要更新数据库的其他部分,请将其自身包含在db代码中。
我想我想说的是,取决于你的目标是什么...... 可观察模式可能是也可能不是最好的方法