Matthias Müller schrieb:
>>> Einige Konventionen erscheinen mir unmittelbar einleuchtend:
> suche mal mit $Suchmaschine nach dem Stichwort "ungarische Notation" (für den
> Einstieg http://de.wikipedia.org/wiki/Ungarische_Notation). Das ist zwar
> für's Programmieren entwickelt worden, könnte aber hier auch nützlich sein.
Hhmm. In Programmiersprachen gibt es eine sehr viel größere Zahl an
verschiedenartigen Objekten.
Mir geht es nur um Überlegungen zu nützlichen Namenskonventionen für
Tabellen und Felder in einer Datenbank.
Nicht mehr und nicht weniger.
Da ich noch unerfahren bin, sind meine Überlegungen naturgemäß
spekulativ. Dennoch helfen sie IMHO dabei, nicht 30 Namenskonventionen
ausprobieren zu müssen, sondern weniger.
Helfen würden mir dabei zusätzlich Eure Erfahrungen.
Hier einige meiner Überlegungen:
Gliederung von Namen
Meine Augen tun sich schwer mit der Lesbarkeit der Pascalschreibweise,
wo auch zwischen Namensteilen kein Unterstrich steht.
Wenn man jedoch einen Unterstrich einsetzt, kann man auch gleich auf
die Majuskeln in Namen verzichten. Zumindest sehe ich noch nix, was
dagegen spräche.
Metainformationen im Namen
Vorbehalte hege ich gegen das Anhängen sehr vieler Postfixe.
Es erschwert die Lesbarkeit.
Braucht man den Datentyp wirklich im Namen? Verhindert er wirklich
sehr oft Fehler bei SQL-Anweisungen?
Da erhoffe ich mir eher, dass ein guter SQL-Editor einen mit
Warnhinweisen versorgt, wenn man versucht zwei Objekte zu
"verknüpfen", wo deren Datentyp dies verbietet.
Metainformation als Sonderzeichen
Kürzel, die aus Buchstaben bestehen, wie z.B. "Ref", welches Hölscher
zur Kennzeichnung von Fremdschlüsseln einsetzt empfinde ich als
weniger schön, als ein Kürzel aus einem Sonderzeichen.
Warum? Weil sie aussehen wie ein Name/Namensteil.
Aber ich kann nicht einschätzen, welche Probleme man sich einhandeln
würde, wenn man ausgewählte Sonderzeichen als Kennzeichner stattdessen
verwenden würde.
Metainformation Primärschlüssel
Das Kennzeichnen von Feldnamen, die Primärschlüssel sind, erscheint
mir als nützlich. Nur wie am besten?
name_pk?
Metainformation Fremdschlüssel
Wenn man Feldnamen datenbankweit eindeutig kennzeichnet, indem man
ihnen den Tabellenamen als Präfix voranstellt, dann könnte man die
Information "Dies ist ein Fremschlüssel", allein durch die Existenz
von zwei Präfixen kennzeichnen.
Metainformation Tabelle oder Feld
Hölschers Praxis vor Tabellennamen ein Präfix "tbl" zu setzen,
erschwert die Lesbarkeit.
Vielleicht ist es eine nützliche Alternativ, wenn man für
Tabellennamen festlegt, dass sie stets aus drei Großbuchstaben
bestehen?
Dann dürften drei aufeinanderfolgende Großbuchstaben nirgendwo sonst
vorkommen. Also weder als Feldname, noch als Feldnamensteil, noch als
Präfix oder Postfix.
Sonst wäre es wieder Essig mit der Eindeutigkeit, ob ein Name ein
Tabellennamen ist oder nicht.
Wenn man Feldnamen stets in Kleinbuchstaben setzt, ist die
Unterscheidung zu Tabellennamen klar.
Metainformation Akronym
Ob ein Feldname ein Akronym ist, wie z.B. PLZ, oder ein normaler Name,
könnte man kennzeichnen. Zum Beispiel durch Majuskeln. Aber das beißt
sich mit der Verwendung von Majuskeln zur Unterscheidung von
Tabellennamen und Feldnamen.
Ich finde die Information "Dieser Namensteil ist ein Akronym" nicht
besonders wichtig. Daher: Akronyme als Namensteil von Feldnamen
einfach klein, wie alle anderen Namenteile auch.
Datenbankweite Eindeutigkeit von Feldnamen
Hölscher gewährleistet dies, indem er vor jeden Namen das Kürzel des
Tabellennamens stellt, als Präfix also.
Sein Motiv: man erspart sich beim eindeutigen Referenzieren die Angabe
eines langen vorangestellten Tabellennamens mit dem Punkt dahinter.
Der Lesbarkeit der Namen schadet diese Praxis.
Aber leider scheidet es als Alternative aus, den Feldnamen eines
Fremdschlüssels so anzugeben:
PRI.number_fk
Also sozusagen im Feldnamen auf eine Tabelle zu referenzieren.
Also führt wohl kein Weg an Hölschers Praxis vorbei.
Beispiel:
Tabellenname (PERSONEN): PER
Feldname (Primärschlüssel): PER_id_pk
Feldname: PER_first_name
Feldname: PER_last_name
Feldname (Fremdschlüssel): PER_PRI_number_pk
Tabellenname (PRIORITAETEN): PRI
Feldname (Primärschlüssel): PRI_number_pk
Feldname: PRI_name
Andreas
--
OOo 3.1
http://borumat.de/openoffice-writer-tipps
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]