Namenskonventionen für Datenbanken von Microsoft?

78

Ich habe Namensrichtlinien von MSDN gefunden, aber gibt es Richtlinien für MSSQL-Datenbanken von Microsoft?

Cheung
quelle
4
Im Folgenden finden Sie hervorragende Antworten, aber ich möchte Folgendes hinzufügen: Die Vereinbarung und Befolgung einer Konvention in Ihrer Organisation für die Organisation Ihrer Datenbank (einschließlich der Benennung) ist ebenso wichtig. Zum Beispiel versuchen wir, zuerst Primärschlüsselspalten beizubehalten, gefolgt von allen Fremdschlüsselspalten, damit Sie Beziehungen auf einen Blick finden können, gefolgt von allen zusätzlichen Spalten in alphabetischer Reihenfolge, damit Sie die gewünschte finden können, wenn eine Tabelle Tonnen von Spalten enthält . Die Weisheit unserer spezifischen Konventionen ist umstritten, aber der Wert dieses Gesprächs in Ihrem Team ist wahrscheinlich nicht.
Bopapa_1979

Antworten:

180

Die in der AdventureWorks- Datenbank von SQL Server verwendeten Namenskonventionen zeigen viele bewährte Vorgehensweisen in Bezug auf den Stil.

Zusammenfassen:

  • Objektnamen sind leicht zu verstehen
  • Tabellennamen werden nicht pluralisiert ("Benutzer" -Tabelle nicht "Benutzer")
  • Es gibt nur wenige Abkürzungen, die jedoch zulässig sind (z. B. Menge, Amt usw.).
  • PascalCase wird ausschließlich mit Ausnahme bestimmter Spaltennamen (z. B. Zeilenleitfaden) verwendet.
  • Keine Unterstriche
  • Bestimmte Schlüsselwörter sind zulässig (z. B. Name)
  • Gespeicherte Prozeduren werden mit "usp" eingeleitet.
  • Funktionen sind mit "ufn" vorangestellt.

Weitere Details finden Sie hier:

Eine Einschränkung: Konventionen zur Benennung von Datenbanken können sehr kontrovers sein, und die meisten Datenbankentwickler, die ich getroffen habe, haben einen persönlichen Anteil an ihrem Stil. Ich habe heftige Auseinandersetzungen darüber gehört, ob eine Tabelle "OrderHeader" oder "OrderHeaders" heißen soll.

8kb
quelle
12
Ich liebe es, dass Sie auf den Originalartikel verlinken, und ich liebe es WIRKLICH, dass Sie sich die Mühe gemacht haben, für alle zusammenzufassen. Ich wünschte, ich könnte zweimal upvoten.
Bopapa_1979
Sechs Jahre später und immer noch +1 für eine übersichtliche Antwort mit Links und einer guten Zusammenfassung.
Was ist der Vorteil, wenn die gespeicherte Prozedur und Funktionen mit uspund vorangestellt werden ufn? Die gespeicherte Prozedur beginnt normalerweise mit einem Verb und die Funktion hat normalerweise einen bestimmten Namen durch ihre Funktion.
ca9163d9
17

Nein, das gibt es nicht, aber die Praktiken in dem von Ihnen angegebenen Link sind gut zu beachten.

In Bezug auf die Benennung gespeicherter Prozeduren - stellen Sie ihnen nicht "sp_" voran. Weitere Informationen dazu finden Sie unter diesem Link :

"Stellen Sie gespeicherten Prozeduren kein sp_ voran, da dieses Präfix für die Identifizierung von vom System gespeicherten Prozeduren reserviert ist."

OMG Ponys
quelle
3
Ich habe das entsprechende Zitat aus dem Artikel hinzugefügt, weil es kurz ist und wir nicht erwarten können, dass ein Link zu einem 5 Jahre alten Beitrag für immer Bestand hat.
Gabe
1
sp_ ist nicht reserviert, sondern veranlasst den SQL Server lediglich, Systemprozeduren zu durchsuchen, bevor benutzerdefinierte Prozeduren durchsucht werden.
6

Ich weiß nicht, was "Best Practices in Bezug auf Stil" in der Antwort von @ 8kb (zum Zeitpunkt des Schreibens) bedeutet. Einige der aufgelisteten Elemente ("Tabellennamen sind nicht pluralisiert", "Keine Unterstriche" usw.) sind lediglich Stilentscheidungen, die offensichtlich subjektiv sind. Ich hätte gedacht, dass die persönlichen Vorlieben des Leiters des Dokumentationsteams hier der größte Faktor sind.

In Bezug auf Heuristiken in SQL im Allgemeinen (im Gegensatz zu proprietärem SQL wie T-SQL) gibt es nur ein Buch zu diesem Thema: Joe Celkos SQL-Programmierstil. Viele der Optionen für die AdventureWorks-Datenbank von SQL Server stehen im Widerspruch zu den Richtlinien von Celko.

Die Namenskonvention von Celko basiert auf der internationalen Norm ISO 11179 und legt beispielsweise fest, dass ein Trennzeichen (z. B. ein Unterstrich) verwendet werden soll, um Elemente in einem Namen zu trennen. Andere Stiloptionen werden in ähnlicher Weise durch Recherchen gesichert, z. B. indem ausschließlich Spaltenbuchstaben für Spaltennamen verwendet werden, um das Scannen mit dem menschlichen Auge zu erleichtern. Zweifellos gibt es dort auch subjektive persönliche Vorlieben, aber sie basieren auf langjährigen Erfahrungen auf diesem Gebiet.

Auf der positiven Seite haben sich die Dinge in den SQL Server-Dokumenten in den letzten Jahren verbessert, z. B. großgeschriebene SQL-Schlüsselwörter, Semikolons zum Trennen von Anweisungen usw. Adventure Works ist eine enorme Verbesserung gegenüber Northwind und Pubs. Warum kann die Skriptfunktion in Management Studio keinen Code ausspucken, der für das Auge etwas einfacher ist?!

eines Tages, wenn
quelle