0
我有兩個PostgreSQL的表 - 表A中包含個人客戶的信用變動記錄(增加/減少)和B表包含了表的彙總表A.簡化結構的數據(我刪除FK和規則):如何確保PostgreSQL表中彙總數據的準確性?
CREATE TABLE "public"."credit_review" (
"id" SERIAL,
"client_id" INTEGER NOT NULL,
"credit_change" INTEGER DEFAULT 0 NOT NULL,
"itime" TIMESTAMP(0) WITH TIME ZONE DEFAULT now()
) WITHOUT OIDS;
CREATE TABLE "public"."credit_review_aggregated" (
"id" SERIAL,
"credit_amount" INT DEFAULT 0 NOT NULL,
"valid_to_review_id" INT NOT NULL,
"client_id" INTEGER NOT NULL,
"itime" TIMESTAMP(0) WITH TIME ZONE DEFAULT now()
) WITHOUT OIDS;
列「credit_review_aggregated.valid_to_review_id」是FK到「credit_review.id」。
因爲聚合表中的數據非常重要,所以我正在尋找確保這種需求的方法。我突然想到:
- 禁用刪除和udpating記錄兩個表
- 在彙總表中創建觸發器來檢查,如果輸入的數據是正確的(如果沒有,不允許插入)。我不太喜歡它,因爲當記錄插入到聚合表中時,credit_amount值將被計數兩次(在觸發器中第二次應用一次)。
你有一些建議,我如何保證這種情況呢?