encodings, again...

From: "Massa, Harald Armin" <chef(at)ghum(dot)de>
To: pgadmin-hackers(at)postgresql(dot)org
Subject: encodings, again...
Date: 2010-07-16 11:38:13
Message-ID: AANLkTil6bpwNSuzHc5uhJo6DZFb44CNioGvl9QLo7CKZ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

hello, that is what my "Primary Key Hint" looks like:

-----------------------------
Primärschlüssel
Beim Designen einer Tabelle sollte man stehts im Blick behalten, auf
welche Weise später auf sie zugegriffen wird. In den meisten Fällen
wird ein eindeutiger Schlüsselbegriff erforderlich sein um eine
spezifische Zeile jeweils eindeutig identifizieren zu können. Dieser
Schlüsselbegriff sollte als Primärschlüssel erzeugt werden. Ein
Primärschlüssel muß nicht unbedingt aus einer einzelnen Spalte
bestehen; er kann soviel Spalten beinhalten wie nötig um eine Zeile
eindeutig zu identifizieren. Wenn hierzu allerdings viele Spalten
erforderlich sein sollten (Faustregel: mehr als 3) könnte es eine
gute Idee sein eine zusätzliche Spalte mit einem handlichen Datentyp,
z.b. serial oder bigserial, einzuführen, welche den eindeutigen
Schlüssel enthält.
Nur in seltenen Ausnahmefällen macht das Erzeugen eines
Primärschlüssels keinen Sinn. Das bedeutet, daß das Fehlen eines
Primärschlüssels in einer Tabelle auf eine unvollständige
Definition hinweist; darum kommt der Guruhinweis hoch wenn man eine
Tabelle ohne PK anzulegen versucht.
Wenn man einen Blick auf die PostgreSQL-Systemtabellen wirft, stellt
man fest daß keine von ihnen einen Primärschlüssel aufweist, also
was soll das Ganze? Tatsächlich haben alle diese Tabellen eine oder
zwei Spalten (typischerweise nur die OID), welche jede Zeile eindeutig
identifiziert, welche die zweite Regel für einen Primärschlüssel,
nicht NULL enthalten zu dürfen, befolgt, und einen Index für
schnelleren Zugriff beinhaltet. Die Verwendung von OIDs hat
historische Gründe, und ist nicht gerade erste Wahl wenn es um den
Design von User-Tabellen geht. PostgreSQL benutzt diese um
Rückwärtskompatibilität zu gewährleisten. Aus heutiger Sicht
würde man vermutlich Primärschlüssel verwenden, eine dahingehende
Änderung der Systemtabellen ist allerdings nicht zu erwarten.
Wie das Beispiel der Systemtabellen zeigt, kann das Ziel der
Eindeutigkeit und des schnellen Zugriffs auch auf andere Weise als mit
einem Primärschlüssel erreicht werden. Es ist allerdings sehr
empfehlenswert, aus Gründen der Klarheit des Datenmodells stets
Primärschlüssel zu verwenden.

-----------------------------

something is unable to deal with the UTF-8 encoding ... or rather,
does not recognize the data is UTF-8 encoded.

rev 8407 on Windows 7, German, 32 bit (1.12.0 Beta 2)

What can we do?

Harald

--
GHUM Harald Massa
persuadere et programmare
Harald Armin Massa
Spielberger Straße 49
70435 Stuttgart
0173/9409607
no fx, no carrier pigeon
-
Using PostgreSQL is mostly about sleeping well at night.

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message svn 2010-07-16 14:00:47 SVN Commit by dpage: r8469 - trunk/pgadmin3/pgadmin/frm
Previous Message Dave Page 2010-07-16 11:17:24 Re: pgadmin3 source now in GIT