2009-06-04 12 views
14

posible duplicado:
Database, Table and Column Naming Conventions?Convenciones de nombres para las tablas y columnas en la base de datos

Cada vez que se inicia nuevo proyecto, estoy pensando en las convenciones de nomenclatura de tabla y columnas en la base de datos. ¿Qué caso es tu recomendación y por qué?

Caso 1. COLUMN_NAME
Caso 2. ColumnName
Caso 3. COLUMN_NAME
Caso 4. columnName

+1

@TheTXI - esa pregunta es sobre el prefijo de tabla, no sobre el estilo de nomenclatura – sasa

+0

+1 para la reedición de su propia pregunta ! –

Respuesta

18

Debe usar el estuche n. ° 1 porque no tiene problemas de sensibilidad de mayúsculas y minúsculas. Además, la caja de camello apesta con acrónimos.

columnID 
columnId 
columnIDAlternative 
columnIdAlternative 
RASCScore 
RascScore 

column_id 
column_id_alternative 
rasc_score 

Además, los espacios entre las palabras son visualmente más agradables que interferir todo junto. Vale la pena cualquier dolor percibido de escribir un guión bajo que hay. Los signos de subrayado simulan espacios y los sustantivos compuestos y las frases tienen espacios en el lenguaje escrito normal. TheOnlyPeopleToTypeLikeThisMayHaveBeenTheRomans.

+3

Nunca me ha gustado CamelCase y usted acaba de explicar por qué. – Xeoncross

+1

Cuando empiezas a utilizar el subrayado inicial, se ve bien, después de un año más o menos te sentirás irritado. Especialmente cuando tienes framework ORM usado en .Net – Ravia

+0

¿Podrías explicar en qué consiste el enlace entre los nombres de tabla y un framework ORM en .NET? –

2

Me gusta el caso 2, los valores parecen sobresalir a mí mejor de esa manera. Lo que sea que elija, ¡manténgalo constante!

2

Yo uso el caso 2 (ColumnName) - porque los caracteres de subrayado son un poco difíciles de escribir.

Los subrayados son correctos en nombres de índice, activadores u otros objetos que no se tipean con frecuencia. Los dejo fuera de las tablas, columnas, vistas y nombres de procesos almacenados, ya que esos son nombres que se utilizan con frecuencia y el alcanzar ese guión bajo puede ralentizarlo si lo usa con frecuencia.

0

Me encanta camelCasing (4) gran legibilidad, sin subrayado

5

Estoy de acuerdo con # 2, por dos razones:

  1. guiones bajos son un dolor de escribir.
  2. En .Net, las propiedades generalmente se envuelven de esta manera. Esto hace que todos tus nombres coincidan, lo cual es útil y te ayuda en situaciones donde estás usando un ORM.

Casualmente, creo que los desarrolladores de Java tienden a usar el # 4 en sus clases. Cambiaría mi respuesta al # 4 si el software del cliente está en Java.

+1

... y caso # 1 si el software está escrito en PHP? :) – sasa

7

Elija lo que elija, seguir el mismo es lo más importante, que sea consistente.

Prefiero el n. ° 2 porque es el más fácil de leer y, como se mencionó antes, el guión bajo es feo y molesto. # 4 es el segundo mejor # 3 me gusta menos, tanto mayúsculas como el guión bajo es excesivo.

3

Yo voto por "Cualquiera que sea la misma que utilizó en el proyecto anterior" La consistencia en este caso es probablemente más importante que cualquier ideología particular ...

1

nombro mis tablas exactamente el mismo que nombro los objetos que me voy a crear para envolverlos. Esto funciona bien con los ORM modernos (mapeadores relacionales de objetos) porque a menudo pueden crear un modelo de objetos para usted en función de la estructura de su base de datos (o viceversa).La respuesta aceptada parece menospreciar el "dolor de escribir un guión bajo", pero lo tomo en serio. Sufriendo de RSI, especialmente en mis tonos de rosa, que utilizo para mantener presionadas las teclas Mayús y Ctrl, hago todo lo que puedo para evitar guiones bajos innecesarios. Por supuesto, una buena respuesta a este problema es reasignar su clave CapsLock a la tecla Mayús o a la tecla Subrayar. Pero en cualquier caso, agrego esta respuesta a una pregunta anterior porque nadie mencionó trabajar con su ORM. Como hago la mayoría de las programaciones en .NET, la mayoría de mis propiedades están encasilladas en camello, así que también nombro mis columnas de db en camello. No tengo ningún problema con las abreviaturas de la carcasa de camello. Así que hago cosas como:

PersonDao.GetIdByName ("Hola mundo").

La carcasa de camello definitivamente se vuelve molesta para los nombres largos ... pero entonces, evito los nombres largos. Por lo general, significa que he organizado cosas incorrectamente. Y si determino que no, bueno ... en esos casos, los nombres largos son tan raros en mi código y la situación tan única, que de todos modos no me ralentiza.

Creo que nombrar es absolutamente de suma importancia. Y al igual que algunas personas tienen un fetiche XML, otros tienen fetiches de base de datos. Personalmente, me gusta usar mis ORM para ignorar mi base de datos por completo (o tanto como sea posible). Para facilitar esto, nombro mis columnas tal como las nombre en el código. Así que, en última instancia, subrayar el odio a un lado, utilizo las convenciones existentes para el lenguaje en el que existe mi código.

Cuestiones relacionadas