Sie sind richtig über ältere IDEs
Als DBA, versucht SQL Server Enterprise Manager (SQL Server 2000 und 7.0) zu beheben Berechtigungen verwenden, es war komplett bugger Berechtigungen anzeigen möchten. Wenn Sie ufn oder usp oder vw hatten, wurde es einfacher, Dinge zusammen zu gruppieren, weil die GUI die Daten präsentierte.
Zu sagen, wenn Sie SELECT * FROM Thing
haben, was ist Thing? Eine Aussicht oder ein Tisch? Es kann für Sie als Entwickler funktionieren, aber es wird bei der Bereitstellung abstürzen, weil Sie keine Berechtigungen für die Tabelle selbst gewähren: nur Ansichten oder Prozesse. Sicher wird eine vwThing
Ihren Blutdruck halten ...?
Wenn Sie Schemas verwenden, wird es irrelevant. Sie können Ihre Objekte "benennen".Zum Beispiel Tabellen in "Data" und andere Objekte, die pro Client in anderem Schema zB WebGUI
Edit:
Funktion. Sie haben Tabellenwert- und Skalarfunktionen. Wenn Sie mit dem Code "VerbNoun" -Konzept bleiben, woher wissen Sie dann, welches das ist, ohne einen anderen Hinweis? (Natürlich kann dies nicht passieren, weil Objektnamen eindeutig sind)
SELECT dbo.GetName() FROM MyTable
SELECT * FROM dbo.GetName()
Wenn Sie einen Plural verwenden, um eine Tabellenwertfunktion, um anzuzeigen, ist dies wohl schlimmer
SELECT dbo.GetName() FROM MyTable
SELECT * FROM dbo.GetNames()
Während dies weniger zweideutig wenn auch beleidigend für einige Leute ;-)
SELECT dbo.sfnGetName() FROM MyTable
SELECT * FROM dbo.tfnGetName()
Mit Schemas. Und keine Namenszweideutigkeit.
SELECT ScalarFN.GetName() FROM MyTable
SELECT * FROM TableFN.GetName()
Ihr Kommentar zu "jeder anderen Sprache" trifft nicht zu. SQL ist nicht wie C# strukturiert, Java, fis, Ada (OK, PL/SQL auch sein mag), VBA, was auch immer: Es gibt keine Hierarchie Objekt oder Namespace ist. No Object.DoStuff
Methode Zeug.
Ein Präfix genau das Richtige sein kann, Sie gesund zu halten ...
Ja, ich stimme zu, dass es sinnvoll ist. Ich frage jedoch speziell nach Funktionen. Vielen Dank. – AaronLS
Ich dachte mehr entlang der Linien von sogar Sprachen wie C, wo Sie eine Funktion haben, die nicht an ein Objekt gebunden ist, es ist immer noch eindeutig eine Funktion aus dem Kontext der Verwendung. Aber wie auch immer, ein guter Punkt in Bezug auf Tabellenwert vs Skalarwert, was bedeutet, dass ein einzelnes Fn_ Präfix alleine wenig leistet, was wirklich benötigt wird, wenn dieses Szenario ein Problem ist, sind zwei verschiedene Präfixe, wie Sie gezeigt haben. – AaronLS
@AaronLS: C könnte auch ein Beispiel sein. SQL ist nicht wie die meisten Clientsprachen und "konventionelle" Annahmen treffen möglicherweise nicht zu. Ich sage nicht, dass es Sinn macht oder gut ist, aber es ist nützlich, nur den Überblick über Ihren Code zu behalten. Wir verwenden ein Schema für alle Funktionen FWIW. Wir trennen Funktionen durch ihre Verben. "Calc" = skalar, "Get" = Tabelle usw. – gbn