使用触发器在依赖系统中传播更改

时间:2018-08-08 20:26:42

标签: sql database postgresql triggers

我正在使用Postgresql创建一个数据库,其目的是跟踪电信设备及其所组成的大型系统的状态,即当前是否正常运行。我使用的逻辑是,一个SYSTEM是否起作用,取决于其所有子系统设备是否起作用。一个系统可以由多个设备配置组成,但在此示例中,该系统由设备类型A,B和C组成。我打算实现此逻辑的方式是,系统与各种设备具有一对多关系类型,并且每种设备类型都有一个外键指向其所属的系统。要跟踪系统的状态,有一个类型为bool 的 status字段,如果功能正常,则表示True,每个设备子系统也具有 status类型为bool 的字段。设备表上有一个触发器,可以更新插入来检查 状态布尔值 的值以及是否如果为false,则pk指向的SYSTEM设置为false。

 SYSTEM            EQUIPMENT A       EQUIPMENT B       EQUIPMENT C
--------------     ------------      ------------      ------------
sys_id    pk       eqA_id    pk      eqB_id    pk     eqC_id    pk
sys_name           eqA_name          eqB_name         eqC_name 
sys_loc            subsysof  fk      subsysof  fk     subsysof  fk 
status  bool       status    bool    status    bool   status    bool 

到目前为止,尚无逻辑来清除故障,但我接下来将在进行研究。 无论如何,这是一种实现逻辑以跟踪系统状态的正确方法,例如使用触发器和所有功能?

谢谢

0 个答案:

没有答案