Pregunta

¿Qué norma debe seguir a la hora de nombrar las tablas y vistas? Por ejemplo, ¿es una buena idea poner algo así como tbl_ al principio de los nombres de tabla? Debería designar código / Tablas de búsqueda de cierta manera como ct_, lut_ o codes_? ¿Hay / no hacer de cualquier otra do?

Estoy usando MS SQL Server y tengo muchas bases de datos con muchas mesas por lo que sería bueno tener algo que podemos usar como un estándar con un poco de apoyo racional.

¿Fue útil?

Solución

OK, primero NUNCA poner TBL delante del nombre de una mesa. Es una mesa, ya que ahora. Eso se llama notación húngara, y la gente dejó de hacer hace que más de 5 años.

Sólo tiene que llamar el objeto sobre la base de lo que es. Si una tabla contiene datos de los empleados llaman "Empleado". Si se mantiene información sobre los equipos llaman "PC". Si se asigna a los ordenadores empleados llaman "EmployeeComputer" o "ComputerEmployee" (personalmente me gusta "EmployeeComputer" mejor).

No es ninguna convención de nomenclatura derecho de uso (que no sea de no utilizar la notación húngara). Mientras los nombres de objeto tiene sentido que lo que es importante.

Otros consejos

Utilizamos esquemas (pensar en ellos como espacios de nombres en SQL tal vez) para ambos permisos y agrupación. Así que en lugar de "TBL", etc tenemos

  • Data.Thing
  • Data.ThingHistory
  • Data.Stuff

Sin código entra en el esquema de datos. No hay mesas viven fuera del esquema de datos. Esto puede extenderse, por supuesto, para tener una búsqueda o un esquema de estadificación si lo desea.

Para las vistas que utilizamos vw pero esto fue para distinguirlas de las tablas en SQL Server 2000 y que es un poco legado ahora

En lo personal soy un gran fan de la Fano Bedingung , lo que significa aquí que no nombre se le permite estar el comienzo de otro nombre válido.

Y en segundo lugar la distancia de Hamming entre dos nombres es mejor más de una letra diferente.

Sí que son la regla de tiempos predigitales, pero hacen la vida más fácil.

Y tercero nombres deben ser pronunciables, o que se volvió loco, cuando el reconocimiento de voz se convierte en realidad.

No sé que no hay realmente ninguna "mejor" convención de nomenclatura por ahí, ya que realmente se reduce a la preferencia personal y facilidad de desarrollo. Mi consejo es elegir una convención de nomenclatura y se adhieren a ella. Si desea palabras separadas por un guión, hacerlo de todos sus objetos de base. Si desea utilizar camelCase, hacerlo de todos sus objetos de bases de datos.

En mi tienda que se adhieren a las reglas siguientes:

separar las palabras con guiones bajos y utilizar todas las letras minúsculas.
Nuestros nombres de tabla describen lo que son: dbo.person, dbo.invoice
. Nuestros muchos-a-muchos nombres de tabla también describen lo que son (con la adición de mm para indicar una relación muchos a muchos ser asignada: dbo.person_mm_address. Nuestros procedimientos almacenados definidos por el usuario describen tanto el objeto y la acción que se lleva a cabo: usp_person_select, usp_address_select_by_city Nuestros puntos de vista y las funciones siguen las mismas reglas que los procedimientos almacenados. Nuestros índices incluyen tabla, las columnas clave (en orden), y una indicación de CLUSTERED / no agrupado: ix_person_last_name_first_name_nc

El hecho de que esto es lo que utilizamos en mi tienda, esto no significa que estas reglas son adecuados para usted. Escoja algo que usted y su equipo de desarrollo de acuerdo es a la vez útil y fácil de desarrollar con, y establecer una cultura de conocimiento y el uso de cualquier convención de nomenclatura de decidir sobre. En nuestro caso, esto incluye la revisión de código para los objetos creados en una base de datos. Con el tiempo, la combinación de una revisión de convenciones y el código de pares de nombres documentado ha llevado a cada vez menos desviaciones de la convención.

Espero que este "no-respuesta" ayuda de alguna manera.

Estoy contento con estas cosas desde hace años

  • nombres de tabla: casquillos pequeños y subrayados, singular {cliente, producto}
  • nombres de tabla para las relaciones de muchos a muchos: tablename1_tablename2: {customer_product}
  • vistas: casquillos pequeños añaden v a la end {customerv, productv, product_groupv}
  • procudures almacenados: nombre de la tabla y la función {customer_select, customer_insert, customer_delete, customer_update}

Si usted tiene un barato paquete de alojamiento compartido, tendrá que utilizar la abreviatura proyecto delante de todos sus objetos, como por ejemplo, los administradores de bases de datos del sitio, da_users, da_questions

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top