Announcement

Collapse
No announcement yet.

Wie sind Eure Namenskonventionen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie sind Eure Namenskonventionen?

    Hallo

    Mich würde interessieren wie Eure Namenskonventionen für mySQL und bei späteren Umstieg auf MS SQL sind.
    Ich habe mal so begonnen:
    Tabellen: alles klein, mit einem Unterscore getrennte Singular Bezeichnungen: "floor_graphic"
    Autoinkrement oder Primary Keys Tabellen Abkürzung 3 stellig mit Endung "Id" und jedes Wort gross beginnen: "flr_Id"
    Diverse andere Spalten wie Primary Key, aber ohne "Id": "flr_Name"
    Bei Foreignkeys hänge ich noch "_FK" an: "flr_Id_FK" bei der Fremdtabelle
    Für Views, Stored Procedure/Functions habe ich nichts besonderes, außer zu bennen was diese macht: "FillFloor" "DeleteFloor" GetFloor"

    Die Abkürzungen pflege ich in Excel mit Duplikaten Schnellprüfung.

    Tabellen mit Auflistungen haben eine 5-stellige Kurzbezeichnung: Für Tabelle "floor_type_list": "fltli"

    Wobei ich hier schon gehört habe das in den Tabellen die eigenen Spalten keinen Kurzname vorangestellt werden sollte(?)

    Danke!

  • #2
    Es gibt viele Regeln - nur selten allgemein gültige. Immer wieder will eine Firma ihre eigenen Regeln anwenden, auch wenn sie von einem Standard abweichen; dann hat zwangsläufig der Chef oder Vorgesetzte recht. (Beispiel: .NET spricht sich gegen die ungarische Notation aus, aber in einer Firma kann sie vorgeschrieben werden.)

    Meine Regeln und Empfehlungen (siehe auch die Anmerkungen in der SQL-Einführung):
    • vorzugsweise englische Bezeichner
    • Tabellen im Singular, Schreibweise in UpperCamelCase (abhängig von den Möglichkeiten des DBMS)
    • Spalten niemals mit Präfix (ein Spaltenname tritt immer zusammen mit der Tabelle auf, also wozu sollte die Tabelle doppelt genannt werden)
    • Die ID heißt ID, nicht flo_Id_PK.
    • Die Spalte eines Fremdschlüssels enthält den Namen der Tabelle plus ID: PersonID oder Person_ID; das verweist auf die Spalte ID in der Tabelle Person.
    • Die Kürzel PK, FK, UC (Unique) kommen an den Namen des betreffenden Constraints (nicht an den Namen der Spalte); denn alle Einschränkungen sollten mit Namen versehen werden.
    • Trigger erhalten Namen, die zuerst die dazugehörige Tabelle nennen und die Position: BI = Before Insert usw.
    • Views erhalten Namen, die (sofern sinnvoll) zuerst die wichtigste Tabelle nennen und dann (wie von dir genannt) die Funktion beschreiben. Am Ende steht noch "View".
    • StoredProcedures und Funktionen erhalten ohne spezielle Kennzeichnung Namen, die (wie von dir genannt) die Funktionalität beschreiben.

    Wichtig sind zwei Gesichtspunkte:
    1. Die Bezeichner müssen selbsterklärend sein. Eine Nachschlagetabelle (wie bei dir in Excel) ist hinderlich, ebenso unverständliche Abkürzungen.
    2. Man muss sich dauerhaft nach diesen Schreibweisen richten.

    Gruß Jürgen

    Comment


    • #3
      Hallo Jürgen

      Danke für den Input!
      Ich habe Abkürzungen gewählt, da die Tabellen Namen Teilweise lang sind. So habe ich "electrical_distribution_list"
      Du würdest also bei einem Fk: "ElectricalDistributionList_Id" schreiben?

      Dank dir!

      Comment


      • #4
        Bis auf das

        Die ID heißt ID, nicht flo_Id_PK.
        würde ich Jürgens Vorschlag goutieren. Der PK einer Tabelle sollte den Tabellennamen enthalten also TabelleID und identisch zu der Spaltenbezeichnung des entsprechenden FK in anderen Tabellen sein. Dadurch ist die Zuordnung immer eindeutig möglich. Die geht schonmal verloren wenn alles ID heißt. Denn nicht immer will man überall die Tabellennamen mit rumschleppen. Die können manchmal von der Menge her das SQL so aufblähen das die mehr Schaden als helfen.

        Letzlich geht es aber bei Lesbarkeit immer auch um Gewöhnung. Es ist daher fast egal wie du dich entscheidest du musst es nur konsequent durchziehen. Sobald du auf diese Schreibweise konditioniert bist hast du eh einen ~anderen~ Blick darauf und siehst diese Details gar nicht mehr sondern~fühlst~ die Zusammenhänge.

        Comment

        Working...
        X