Re: Trigger und Funktion

From: udono <udono(at)gmx(dot)net>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Trigger und Funktion
Date: 2007-03-08 12:03:27
Message-ID: 45EFFB8F.8030008@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Hallo Jürgen,

Jürgen E. Fischer schrieb:
> On Wed, Mar 07, 2007 at 23:05:24 +0100, udono wrote:
> Dazu gibt es doch bestimmt auch eine überordnete Tabelle trans in der
> trans_id primary key ist. Da würde ich ansetzen.
In etwa ist das so. Wir haben mehrere Tabellen ar, ap, gl die als
Primärschlüssel die id aus meiner acc_trans tragen. Aber im Prinzip
ergeben diese Tabellen zusammen, die von dir beschriebene Tabelle
trans.

> Du könntest dort ein Feld hinzufügen, dass aussagt, ob der Buchungssatz
> abgeschlossen/gültig ist oder nicht.
> Du legst also den Buchungssatz in trans initial mit false in dem Feld
> an, fügst dann Deine Sätze in acc_trans ein und setzt das Feld danach
> per UPDATE auf true.
Ja, damit könnte ich die Transaktionssicherheit noch etwas verbessern...

> trans hat einen Trigger ON UPDATE, der bei der Transition von
> false auf true überprüft, ob die Summe 0 ist und bei <>0 das Update
> abbricht.
... ach, ok ich verstehe. Das hört sich auf jeden Fall gut an.

Aber dann habe ich in der acc_trans immer noch Buchungen stehen, die
ungültig sein können. Gut, der Trigger in trans ließe sich bestimmt
erweitern auf ein anschließendes Delete der fehlerhaften
Transaktionen...

> Außerdem hat acc_trans noch einen Trigger, der UPDATE und DELETE nur
> zuläßt, wenn in trans false steht. Vor Änderungen muss dann also trans
> immer false gesetzt werden.
Ok, lauter gute Ideen!

Delete ist noch eine Thema für sich. Denn in der Buchhaltung gibt es
kein löschen von Daten als solches, sondern eher ein Storno, was ich
aber auch gern von der Datenbank verwaltet wissen würde (On delete
trigger).

> In der Applikation dürftest Du dann nur noch die gültigen Buchungssätze
> betrachten.
> Nicht wirklich elegant, sollte aber funktionieren.
Bestens, vielen Dank! Deinen Ansatz werde ich mal austesten.

Viele Grüße
Udo Spallek

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message rene hankel 2007-03-08 12:03:35 Re: Trigger und Funktion
Previous Message udono 2007-03-08 11:12:42 Re: Trigger und Funktion