Tabellenverbunde oder besser Views?

Tabellenverbunde oder besser Views?

am 25.09.2008 13:21:24 von Christian Weerts

Moin,

ich suche den einfachsten Weg einen Tabellenverbund richtig zu lösen.

Folgende Situation:
Ich habe 3 Tabellen
-touren
-personendaten
-lieferanten

In der Tabelle touren werden in den entsprechenden Felder die
integer-Werte persondendaten.pers_id und lieferanten.lieferant_id
gespeichert. Somit brauche ich in touren nicht 500+x mal den Vornamen
usw. zu speichern. So weit so gut. Die Tabellenbeschreibungen habe ich
unten angehangen.

Nun möchte (muß) ich aber am Bildschirm jede einzelne gespeicherte
Tour wieder mit einem Namen verbinden. Bei einem Verbund (touren +
personendaten) ist es ja noch relativ einfach und übersichtlich:

SELECT personendaten.name, personendaten.vorname
FROM personendaten, touren
WHERE touren.fahrer =3D persondendaten.pers_id and
touren.datum >=3D '2008-09-01' and
touren.datum <=3D '2008-09-30'

Aber wie stelle ich das am geschicktesten für
touren+personendaten+lieferanten an ohne das es unübersichtlich wird?
Ich habe es schon mit aliasen probiert aber das schien mir auch nicht
gerade lesbarer :(.

Ist es vielleicht Sinnvoll einen View zu erstellen? Da ich die
Ausgabetabelle am Bildschirm mit Daten für einen Monat füllen möcht=
e,
müsste ich 12 Views generieren (lassen). Ist das so die "richtige -
saubere" Vorgehensweise?

Gruß,
Christian

Tabelle touren:

Spalte | Typ |
-----------+------------------------+
tour_id | integer |
lieferant | integer |
fahrer | integer |
beifahrer | integer |
datum | date |
menge | numeric(4,0) |
kuehlung | boolean |
notiz | character varying(255) |
produkte | integer |
tourname | integer

Tabelle personendaten:

Spalte | Typ |
---------------+------------------------+-
pers_id | integer |
name | character varying |
vorname | character varying |
adresse | character varying |
plz | numeric(5,0) |
ort | character varying |
telefon | character varying |
fax | character varying |
email | character varying |
belehrung | boolean |
aktiv | boolean |
eintritt | date |
geburtstag | date |
notiz | character varying(255) |
gruppe | character varying |
gruppenleiter | boolean |
aussenstelle | character varying |
anrede | character varying |
fahrer | boolean

Tabelle lieferanten
Spalte | Typ |
-----------------+------------------------+
lieferant_id | integer |
firma | character varying |
ort | character varying |
ansprechpartner | character varying |
telefon | character varying |
anspr_rechnung | character varying |
notiz | character varying(255) |
fax | character varying |


--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein

Re: Tabellenverbunde oder besser Views?

am 25.09.2008 13:28:14 von Andreas Kretschmer

Christian Weerts schrieb:

> Ist es vielleicht Sinnvoll einen View zu erstellen? Da ich die

Ja.


> Ausgabetabelle am Bildschirm mit Daten für einen Monat füllen möc=
hte,
> müsste ich 12 Views generieren (lassen). Ist das so die "richtige -
> saubere" Vorgehensweise?

Pro Jahr 12 Views. Du könntest aber auch eine SRF=B9 schreiben, die Jah=
r
und Monat als Parameter bekommt und Dein gewünschtes Resultat liefert.


Set Returning Function

13:27 < akretschmer> ??srf
13:27 < rtfm_please> For information about srf
13:27 < rtfm_please> see http://www.postgresql.org/docs/current/static/xf=
unc-sql.html#XFUNC-SQL-TABLE-FUNCTIONS
13:27 < rtfm_please> or http://www.varlena.com/GeneralBits/26



Andreas
--=20
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889=
°

--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein

Re: Tabellenverbunde oder besser Views?

am 25.09.2008 14:08:23 von muellerrobert

QW0gMjUuIFNlcHRlbWJlciAyMDA4IDEzOjI4IHNjaHJpZWIgQW5kcmVhcyBL
cmV0c2NobWVyCjxha3JldHNjaG1lckBzcGFtZmVuY2UubmV0PjoKPiBDaHJp
c3RpYW4gV2VlcnRzIDx3ZWVydHNAZnJpZXNveXRoZXItd2Fzc2VyYWNodC5k
ZT4gc2NocmllYjoKPgo+PiBJc3QgZXMgdmllbGxlaWNodCBTaW5udm9sbCBl
aW5lbiBWaWV3IHp1IGVyc3RlbGxlbj8gRGEgaWNoIGRpZQo+Cj4gSmEuCj4K
Pgo+PiBBdXNnYWJldGFiZWxsZSBhbSBCaWxkc2NoaXJtIG1pdCBEYXRlbiBm
w7xyIGVpbmVuIE1vbmF0IGbDvGxsZW4gbcO2Y2h0ZSwKPj4gbcO8c3N0ZSBp
Y2ggMTIgVmlld3MgZ2VuZXJpZXJlbiAobGFzc2VuKS4gSXN0IGRhcyBzbyBk
aWUgInJpY2h0aWdlIC0KPj4gc2F1YmVyZSIgVm9yZ2VoZW5zd2Vpc2U/Cj4K
PiBQcm8gSmFociAxMiBWaWV3cy4gRHUga8O2bm50ZXN0IGFiZXIgYXVjaCBl
aW5lIFNSRsK5IHNjaHJlaWJlbiwgZGllIEphaHIKPiB1bmQgTW9uYXQgYWxz
IFBhcmFtZXRlciBiZWtvbW10IHVuZCBEZWluIGdld8O8bnNjaHRlcyBSZXN1
bHRhdCBsaWVmZXJ0LgoKU29sbHRlIGVzIG5pY2h0IHNvZ2FyIHJlaWNoZW4s
IGltIFZpZXcgbm9jaCBlaW5lIFNwYWx0ZSBmw7xyIE1vbmF0IHVuZApKYWhy
IGhpbnp1enVmw7xnZW4gdW5kIGVudHNwcmVjaGVuZCBkZW4gU0VMRUNUIGF1
ZiBkZW4gVklFVyB1bSBlaW4KZW5zcHJlY2hlbmRlcyBXSEVSRSB6dSBlcndl
aXRlcm4/CgpSb2JlcnQKCi0tIApTZW50IHZpYSBwZ3NxbC1kZS1hbGxnZW1l
aW4gbWFpbGluZyBsaXN0IChwZ3NxbC1kZS1hbGxnZW1laW5AcG9zdGdyZXNx
bC5vcmcpClRvIG1ha2UgY2hhbmdlcyB0byB5b3VyIHN1YnNjcmlwdGlvbjoK
aHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tYWlscHJlZi9wZ3NxbC1kZS1h
bGxnZW1laW4K

Re: Tabellenverbunde oder besser Views?

am 25.09.2008 14:38:13 von Andreas Kretschmer

Robert Frießleben schrieb:

> Am 25. September 2008 13:28 schrieb Andreas Kretschmer fence.net>:> Christian Weerts schrieb:=
>>> Ist es vielleicht Sinnvoll einen View zu erstellen? Da ich die>> Ja.>=
>>> Ausgabetabelle am Bildschirm mit Daten für einen Monat füllen mö=
chte,>> müsste ich 12 Views generieren (lassen). Ist das so die "richti=
ge ->> saubere" Vorgehensweise?>> Pro Jahr 12 Views. Du könntest aber a=
uch eine SRF=B9 schreiben, die Jahr> und Monat als Parameter bekommt und =
Dein gewünschtes Resultat liefert.
> Sollte es nicht sogar reichen, im View noch eine Spalte für Monat und=
Jahr hinzuzufügen und entsprechend den SELECT auf den VIEW um einenspre=
chendes WHERE zu erweitern?
> Robert
> -- Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgre=
sql.org)To make changes to your subscription:http://www.postgresql.org/ma=
ilpref/pgsql-de-allgemein

Zuerst einmal: wasndas für eine Monsterzeile & Quoting?

Ansonsten: ja.


Andreas
--=20
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889=
°

--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein