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: Check Constraint mit Subselect



* Thomas Guettler <hv(at)tbz-pariv(dot)de> schrieb:

Hi,

> Wie kann ich dann sicherstellen, dass es bei einer 1:N Beziehung, N
> nicht Null sein darf.
> Es muss also mindestens einen Datensatz geben.
> 
> Beispiel: Zu einer Rechnung muss es immer Rechnungspositionen geben.

erstmal würde ich bezweifeln, daß dieses Definition sinnvoll ist. 
Ich könnte mir viele Situationen denken, in denen eine Rechnung 
vielleicht ohne Posten sein könnte (zb. bei Stornierungen). Ergo
müßtest Du erstmal sicherstellen, daß bei den dahinterliegenden
Prozessen solch eine Situation ausgeschlossen ist !

Im Übrigen würd ich Dir einen ganz anderen Ansatz vorschlagen:
Erst die offenen Posten erfassen und dann daraus (evtl. aus einer 
Teilmenge) die Rechnung erzeugen. Das kapselst Du dann über Views
oder Functions - ein direkter Zugriff auf Rechnungsposten ist verboten!
Es gibt nur diese schreibenden Operationen:

* Rechnung anlegen (-> Posten => RE-ID)
* Rechnung stornieren ( -> RE-ID => void)
* Metadaten setzen (-> RE-ID, Attribut, Wert => void)

Für mich ist eine RE auch keine akkumulierte Forderung, sondern 
ledeglich die Benachrichtigung darüber bzw. Zustands-Element im
Payroll-Prozeß.


cu
-- 
---------------------------------------------------------------------
 Enrico Weigelt    ==   metux IT service - http://www.metux.de/
---------------------------------------------------------------------
 Please visit the OpenSource QM Taskforce:
 	http://wiki.metux.de/public/OpenSource_QM_Taskforce
 Patches / Fixes for a lot dozens of packages in dozens of versions:
	http://patches.metux.de/
---------------------------------------------------------------------



Home | Main Index | Thread Index

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