2010-06-23 15 views
12

¿Es mejor usar un guión bajo al nombrar las tablas o es mejor usar camelcase?La mejor manera de poner nombre a las tablas

Ejemplo table_name o tableName cuál es mejor? ¿Hay alguna razón para usar cualquiera? ¿Qué es?

+0

Respuesta corta: depende de usted, elija lo que quiera. Ver también: http://stackoverflow.com/questions/1847235/database-table-and-column-naming-conventions – Shog9

+0

ahh chicos geniales ... muchas gracias por los enlaces ... apreciado mucho. – bharath

+0

La mayoría de las implementaciones de SQL son independientes de mayúsculas y minúsculas, por lo que 'STUFF', 'cosas' y 'StUfF' se refieren a la misma tabla. –

Respuesta

1

digo usar cualquier convención de nomenclatura que se utiliza en el código que accede a ella para estructuras de alto nivel (como las clases).

Por ejemplo, si encapsular los datos * en una clase llamada de información del usuario, la tabla de información del usuario debe ser llamado así.

* Usted está encapsulando los datos, ¿verdad?

+0

ahh que fue una buena pieza de información ... muchas gracias. – bharath

1

En lugar de proporcionarle una breve información sobre algunas de las razones para esto y que voy a proporcionar un enlace a las directrices de codificación SQL de Pinal Dave. Han sido bien pensado, explican y parecen seguir mis propias preferencias sobre cómo las cosas deben ser nombrados y utilizados etc.

Enjoy!

+0

muchas gracias por el enlace brian ... – bharath

+0

Más bien específico para SQL Server, pero sigue siendo una buena referencia. –

+1

No puedo decir que estoy de acuerdo con todo esto. No debe nombrar los pro cesos en storped empezando por sp, ya que SQL Server buscará primero un proc de sistema para que pierda un poco de rendimiento en cada llamada. – HLGEM

1

Mi opinión sobre esto es que usted debe hacer lo que se siente natural para usted, si la mejor convención de nomenclatura en el mundo (para la persona que la escribió) no se sentirá natural y tendrá que leer el documento cada vez que diseña una base de datos que eso es malo.

Usted debe hacer lo que sea conveniente para usted y lo que fluye fuera de su keyborad mejor.

En mi experiencia, me mudé a ROR desde .net hace un tiempo y me atrapó de la manera en que siempre veía a la gente hacer estas cosas y subrayaba mis tablas, pero después de un tiempo descuidé esta opción para mi buen nombre de SQL conveniencia.

lo mismo para las columnas.

Buena suerte

+0

No, el equipo debería acordar un estándar y todos deberían usarlo (y las revisiones de los códigos deberían desgarrar al desarrollador si no cumple con el estándar). Sin códigos de vaquero donde todos usan el estándar con el que se sienten más cómodos. Y no usar el formulario estándar en el último lugar donde trabajé porque me siento cómodo con eso en lugar del que esta organización requiere tonterías ya sea – HLGEM

+0

@HLGEM trabajando en equipo es una ópera diferente todos juntos. cuando se trabaja en equipo o se administra un equipo definitivamente debe haber una convención establecida por el gerente. – KensoDev

+0

@HLGEM - Tendré que estar de acuerdo con KensoDev. Sus comentarios, ya sea intencionados o no, le dan la sensación de que desea que los desarrolladores de código directo cumplan con un estándar de codificación. Los estándares no son algo malo, pero mi experiencia es que están diseñados para luchar en la batalla del año pasado, y no en la de este año. Seguramente hay cosas que podemos tomar de ella y aplicar en el futuro. Pero aplicar un estándar de codificación a las personas cuando las reglas del juego han cambiado (nuevo lenguaje, nuevos problemas para resolver, nuevas técnicas de codificación) realmente me han amargado a la idea de estándares de codificación. ¿Actualizas tu estándar con frecuencia? –

3

Todo lo que he leído indica la mejor convención es que se adhieren a minúscula para los nombres de bases de datos y los nombres de las tablas. Si necesita juntar varias palabras, sepárelas con guiones bajos: evite los guiones en los nombres de las tablas o tendrá que hacer una copia de seguridad de todos los nombres de las tablas y bases de datos cada vez que los referencia.

Además, el siguiente parámetro de configuración es probablemente relevante para lo que están pidiendo:

mysql> show global variables like 'lower%'; 
+------------------------+-------+ 
| Variable_name   | Value | 
+------------------------+-------+ 
| lower_case_file_system | OFF | 
| lower_case_table_names | 0  | 
+------------------------+-------+ 
2 rows in set (0.00 sec) 

En cuanto a los nombres de campo, que tienden a utilizar camello caso.

+0

¿Por "nombres de campo" quiere decir columnas/filas? –

1

Mi preferencia es usar nombres descriptivos y usar la carcasa de Pascal (TableName).

Evite las abreviaturas, y si tiene que usar una abreviatura, trátela como una palabra (use DaylightSavingsTimeInfo o DstInfo en lugar de DSTInfo).

de nombres no es algo que tiene una única respuesta correcta, así que lo mejor es elegir algo y ser coherente. Lo peor es tener una mezcolanza de muchos estándares.

12

Algunos motores de base de datos distinguen entre mayúsculas y minúsculas y, de hecho, convertirá los nombres a minúsculas en algunas salidas. Debido a esto, me he acostumbrado a usar guiones bajos entre las palabras y usar todas las minúsculas.

MySQL respeta caso como lo recuerdo así que este no es un problema inmediato para usted. Pero me quemé con esto una vez cuando tuve que transferir una base de datos de un motor a otro, creo que era de MySQL a Oracle, pero no lo juraría, y todos nuestros nombres de camelCase se convirtieron repentinamente en nombres correlacionados. .

También voy a sustituir a Rob Boek en cuanto a lo más importante: consistencia. Y mientras estamos en el tema, ¿puedo hacer un comentario tangencial acerca de ser consistente en los nombres de campo? Estoy trabajando con un sistema ahora en el que descubrí que el campo "prodid" en una tabla es exactamente el mismo contenido que "estilo" en otra, y otro sistema que tiene "fecha de entrega" en una tabla y "fecha entregada" en otro.

2

Creo que muchos RDBMS ignoran las mayúsculas y minúsculas, por lo que el uso de esquemas de nombres de camello simplemente no puede funcionar.

Lo importante es que los nombres de las columnas y los nombres de las tablas sean descriptivos, sin importar la sintaxis nitida que usted elija. Si son descriptivos de sus datos, a nadie le importará si usó camel case, guiones bajos, etc.

+1

No estoy de acuerdo, estoy trabajando con una base de datos heredada donde a las personas no les interesaba usar un estándar en el diseño inicial y eso hace que sea mucho más difícil de mantener. Elija y estándar y úselo consistentemente. – HLGEM

+0

HLGEM - ¿Puedes aclarar a qué te refieres con estándar? ¿Quiere decir en términos de sintaxis (use camelcase, use guiones bajos, siempre tenga SQL en mayúsculas), o de contenido (las columnas describen sus datos, el formato de los datos en HH: MM: SS, formateo)? Creo que es perjudicial imponer sintaxis a los desarrolladores que la base de datos no lo hace (los programadores de IME son demasiado analistas sobre eso, solo crea batallas religiosas). Pero en lo que respecta al contenido, creo que está bien hablar en un estándar/directrices. –

+0

También agregaría que HLGEM tiene un punto: es necesaria cierta consistencia. Por ejemplo, las columnas que contienen identificadores que se comparten deben tener el mismo nombre en las tablas de la base de datos en el esquema específico. No estoy abogando por una libertad para todos aquí. –

Cuestiones relacionadas