estás en lo correcto acerca de los IDE de más edad
Como DBA, tratando de corregir los permisos utilizando Administrador corporativo de SQL Server (SQL Server 2000 y 7.0), que era completa cabrón tratando de ver los permisos. Si tenía ufn o usp o vw, era más fácil agrupar elementos debido a la forma en que la GUI presentaba los datos.
Diciendo eso, si tiene SELECT * FROM Thing
, ¿qué es Thing? Una vista o una mesa? Puede funcionar para usted como desarrollador, pero se bloqueará cuando se implemente porque no otorga permisos en la tabla en sí: solo vistas o procesos. Seguramente un vwThing
mantendrá su presión arterial baja ...?
Si usa esquemas, se vuelve irrelevante. Puedes "espacios de nombres" para tus objetos.Por ejemplo, las tablas de "Datos" y otros objetos por cliente en otros esquemas, por ejemplo, WebGUI
Editar:
función. Tiene funciones escalares y de valores de tabla. Si te apegas al concepto de código "VerbNoun", ¿cómo sabes cuál es cuál sin otra pista? (Por supuesto, esto no puede suceder porque los nombres de objetos son únicos)
SELECT dbo.GetName() FROM MyTable
SELECT * FROM dbo.GetName()
Si utiliza un espacio plural para significar una función con valores de tabla, podría decirse que es peor
SELECT dbo.GetName() FROM MyTable
SELECT * FROM dbo.GetNames()
Mientras que esto es menos ambigua , aunque ofensivo para algunas personas ;-)
SELECT dbo.sfnGetName() FROM MyTable
SELECT * FROM dbo.tfnGetName()
Con esquemas. Y no hay ambigüedad de nombre.
SELECT ScalarFN.GetName() FROM MyTable
SELECT * FROM TableFN.GetName()
Su comentario de "cualquier otro idioma" no se aplica. SQL no está estructurado como C#, Java, f #, Ada (OK, PL/SQL podría ser), VBA, lo que sea: no hay ningún objeto o jerarquía de espacio de nombres. No Object.DoStuff
cosas de método.
Un prefijo puede ser justo lo que mantendrá sano ...
Sí, estoy de acuerdo con las opiniones, es útil. Sin embargo, estoy preguntando específicamente sobre funciones. Gracias. – AaronLS
Estaba pensando más en la misma línea de idiomas como C, donde podría tener una función que no está unida a un objeto, todavía es claramente una función del contexto de uso. Pero de todos modos, un buen punto con respecto a los valores de tabla frente a los de valor escalar, lo que significa que un solo prefijo fn_ solo logra poco, lo que realmente se necesita, si ese escenario es una preocupación, hay dos prefijos diferentes como lo demostró. – AaronLS
@ AaronLS: C también podría ser un ejemplo. SQL no es como la mayoría de los lenguajes de cliente y las suposiciones "convencionales" pueden no aplicarse. No digo que tenga sentido o que sea bueno, pero es útil solo para hacer un seguimiento de tu código. Usamos esquemas para todas las funciones FWIW. Separamos funciones por sus verbos. "Calc" = escalar, "Obtener" = tabla, etc. – gbn