Skip to main content

Kural ve Aksiyon Tablolari

Bu sayfa, Qapu backend icinde kural motoru, alarm uretimi, durum takibi ve reaksiyon aksiyonlari icin kullanilan veri modelini detayli bicimde aciklar.

Amac, alarm davranisini uygulama kodu icinde daginik if-else bloklarindan cikarip veri modeliyle yonetilebilir hale getirmektir.

Tablo Iliski Ozeti

Rules & Alerts katmani, alarm mekanizmasini 7 tabloya boler: kural tanimi, cihaz atamasi, anlik durum, tarihsel kayit ve reaksiyon aksiyon. Her tablo iliskileri su semada gosterilmektedir:

Tablo Katmanlari

KatmanTablolarAmaci
Tanimrule_groups, rulesHangi kosullar alarm uretir
Atamadevice_rule_assignmentsKurallar hangi cihazlarda aktif
Durumdevice_rule_stateTrigger/reset durumu, sayaclar, cache
Tarihcerule_eventsTum alarm olaylari (audit trail)
Reaksiyonrule_actions, rule_group_actionsAksiyonlari tanimla ve grupla bagla

Genel Kural Akisi

Bu bolum, bir cihazdan veri paketi geldigi andan aksiyon uretilmesine kadar olan surecin tum adimlarini gosterir. Her karar noktasi bir tablo operasyonuna karsilik gelir.

Bu akista temel roller sunlardir:

  • device_rule_assignments: hangi grubun bu cihazda aktif oldugunu belirler
  • rule_groups + rules: kural tanimi ve eslesme mantigini (all/any) tasir
  • device_rule_state: anlik trigger/reset durumunu ve sayaclari saklar
  • rule_events: her kritik olayi tarihsel olarak kaydeder
  • rule_group_actions + rule_actions: tetikleme ve reset aninda hangi aksiyonun calisacagini belirler

Uctan uca tek senaryo dogrulama seti icin:

Eksik veya Belirsiz Alanlar

Asagidaki sorular kural motoru implementasyonunda yanitsiz kalmis olabilir:

AlanSoru
duration kurallariSure sayaci Redis'te mi tutuluyor, yoksa device_rule_state icinde ek bir alan mi gerekiyor?
multi_trigger mantigimulti_trigger=true olan grupta trigger_count her yeni paket icin mi artiyor, yoksa sadece state gecislerinde mi?
valid_from / valid_toGecerlilik penceresi disinda kalan kural grubu atlanirken bir event kaydi olusturulacak mi?
register_transitionold_register_value dogrulamasi icin onceki stream degeri nereden geliyor - device_rule_state icinde tutulacak mi?
command_sent sonrasiCihaz komutu gonderildikten sonra cevap bekleniyor mu; timeout varsa yeni event uretilecek mi?
rule_actions.device_command_idBu FK hangi tabloya baglaniyor - device_commands tablosu henuz modellendi mi?

Tablolar