Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Trigger und Funktion



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



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group