News

FAQ Access – Konventionen für Feldnamen

Category:

Access, FAQ

0

Access Grundlagen – Welche Feldnamen sind „gut“

Problem

In einer Access Datenbank mit Ihren hunderten von Tabellen muss es Regeln für die Bezeichnung von Feldnamen geben. Andernfalls droht das Chaos.

Lösung

Entscheidend ist, das Sie sich eine Regel für die Benennung überlegen. Die hier vorgestellte Variante ist aufgrund meiner Erfahrung entstanden.
Diese Regel kann auch für Sie passen, muss aber nicht. Von daher nehmen Sie die hier gezeigten Vorschläge einfach als Vorlage für Ihre eigenen Überlegungen.

Die Grundidee

Bei der Vergabe von Feldnamen muß darauf geachtet werden, daß die Feldnamen

  • kurz und prägnant sind
  • einen Hinweis auf die Tabellenherkunft geben
  • die Rolle im Beziehungsgeflecht zeigen
  • SQL Server konform sind
  • einzigartig sind, also nicht doppelt vorkommen

SQL Server Konformität

Access ist bei den Möglichkeiten de Feldnamen relativ freizügig. Sie können bis zu 64 Zeichen verwenden, Leerzeichen, Groß- und Kleinschreibung, Sonderzeichen oder deutsche Granaten wie ö, ä, ü oder ß sind kein Problem.

Die diversen SQL Server sind hier in der Regel weniger tolerant, Die Länge ist meist begrenzt, Groß- und Kleinschreibung wird unterschieden etc.

Wird nun unser Datenbank Projekt in Access gestartet und soll später auf den SQL Server migriert werden, so würde das bedeutet, das wir unter Umständen viele Feldnamen anpassen müssten. Was für eine Katastrophe. Daher vergeben wir von Anfang an im Access Feldnamen, die auch auf dem SQL Server funktionieren. Das bedeutet, das wir später nichts ändern müssen. Daraus folgt

  • Keine Sonderzeichen
  • Keine Umlaute
  • Keine Leerzeichen
  • Konsequente Großschreibung

Im Falle einer zu speichernden Straße würde aus

  • Straße

nun ein

  • STR

Tabellenherkunft

Ich liebe es, wenn ich Fehlermeldung bekomme wie „Das Feld Straße ist zu klein für den Inhalt…“ und ich weiß im Leben nicht, ob nun die Straße des Kunden, des Lieferanten, des Mitarbeiters oder des nächsten Mc‘ Donalds gemeint ist. Der Feldname Straße gibt also keine Aussage über die Tabellenherkunft des Feldes an.

Findet Access in einer Abfrage zwei gleichnamige Felder wie Straße vor, so unterscheidet er die beiden Felder dadurch, dass er die Tabellenherkunft als Prefix benutzt.

  • Kunden.Straße
    
  • Lieferanten.Straße

Dieses Voranstellen der Tabellenherkunft greifen wir auf und denken uns für jede Tabelle ein Kürzel aus. So wäre folgende Vorgehensweise denkbar

  • Kunden - KD
  • Lieferanten - LF
  • Bestellungen - BS

Daraus folgt dann, das dieses Kürzel den Feldnamen vorangestellt wird.

  • KDSTR
  • LFSTR
  • BSSTR

 

Durch diesen kleinen Kunstgriff erreichen wir, das jedes Feld seine Tabellenherkunft verrät und gleichzeitig sorgen wir dafür, dass jeder Feldname einzigartig ist, wir also keine doppelten Feldnamen bekommen können.

Die Rolle im Beziehungsgeflecht

Ein Feld kann in den Beziehungen einer Datenbank die Rolle des Primärschlüssel übernehmen, es kann als Fremdschlüssel fungieren oder aber überhaupt keine Rolle in den Beziehungen spielen.

Primärschlüssel werden von Access gerne mit dem Feldnamen ID versehen, diese Idee greifen wie auf, allerdings ergänzen wir diese Info durch die oben genannte Tabellenherkunft. Daraus folgt

  • IDKDNR
  • IDLFNR
  • IDBSNR

Damit ist sowohl die Eigenschaft als Primärschlüssel als auch die Tabellenherkunft klar.

Fremdschlüssel werden im englischen auch als Foreignkey bezeichnet. Das ist nun namensgebend für unsere Felder. Als Kürzel verwenden wir das FK für die Fremdschlüssel. Nehmen wir also an, wir haben die Kundennummer auch in der Bestellung. Der Feldname wäre hier

FKBSKDNR
  • FK Ich bin ein Fremdschlüssel, also die n Seite einer Beziehung
  • BS Ich stehe in der Tabelle BS also Bestellungen
  • KDNR Mein Weg führt mich in die Tabelle KD

Und hier mal ein kleines Abbild eines entsprechenden Beziehungsfenstes

 

Beziehungen

Tags:

Leave a Reply

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.