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