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

Re: Werte Prüfen und anderes Feld mit Resultat

From: Andreas Seltenreich <andreas+pg(at)gate450(dot)dyndns(dot)org>
To: "Daniel Seichter" <dseichter(at)radiomatic(dot)com>
Cc: <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: Re: Werte Prüfen und anderes Feld mit Resultat
Date: 2005-12-06 21:52:21
Message-ID: 871x0pki5m.fsf@gate450.dyndns.org (view raw or flat)
Thread:
Lists: pgsql-de-allgemein
Daniel Seichter writes:

> ich habe in einer Tabelle 2 wesentliche Felder. Artikel(char(12))
> und Artikelart(char(1)).
> Die Artikelart ist so definiert, dass:
> wenn Artikellänge = 8 dann Artikelart='m'
> wenn Artikellänge = 12 dann Artikelart='a'
[...]
> es können über ein Check-Constraint nur Artikel mit 8 oder 12
> Stellen eingefügt werden. Nun habe ich aber das Problem, mit dem
> Prüfen für die Artikelart.

Wieso hältst du überhaupt "Artikelart" auf der Platte, wenn die Spalte
redundant ist? Besseres Design wäre, sie aus der anderen in einer
Sicht zu erzeugen. Etwa so:

create view artikel_view as
	select artikel,
              case
                when length(artikel) = 8 then 'm'
                when length(artikel) = 16 then 'a'
                else NULL
              end as Artikelart
	from artikel;

Dann müsstest du auch nicht per Trigger um die Anomalien
herumarbeiten.

Gruß
Andreas
-- 

In response to

pgsql-de-allgemein by date

Next:From: Andreas SeltenreichDate: 2005-12-06 22:55:29
Subject: Re: PL/pgSQL Zuweisungsoperator
Previous:From: W. HaslbeckDate: 2005-12-06 21:04:34
Subject: Winbashing

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group