sql server - una - Convención de nombre de base de datos: columna DATETIME
obtener hora sql server (9)
¿Cuál es su convención de nombres para las columnas DATETIME (en mi caso, usando MS SQL Server)?
Para una columna que almacena cuando se creó la fila CreatedDatetime tiene sentido, o LastModifiedDatetime .
Pero para una tabla simple, digamos uno llamado Evento, ¿crearías columnas llamadas:
EventID, // Primary key
EventDatetime, // When the event is happening
EventEnabled // Is the event is on
o
ID, // Primary key
Datetime, // When the event is happening
Enabled // Is the event is on
Si no utiliza ninguna de las convenciones: proporcione el nombre de columna que usaría.
¿Por qué llamarlo EventDateTime, cuando tampoco usa EventIDInt o EventEnbaledVarchar? ¿Por qué incluir el tipo de datos en el nombre de la columna? (Mi regla de oro es que, si acceden a los datos en una tabla, es mejor que conozcan los tipos de datos de las columnas, porque de lo contrario no saben con qué están trabajando).
Estos días prefiero lo que pienso como nombres de columna descriptivos, como:
Fecha de Creación
Fecha de creacion
Creado en
CreatedOn (si no hay una porción de tiempo)
AddedOn (podría ser semanitcally más apropiado, dependiendo de los datos)
Escoger una "etiqueta" y usarla consistentemente en cada tabla que requiera datos amables también es algo bueno. Por ejemplo, tener una columna "CreateDate" en (casi) todas las tablas está bien, porque entonces siempre sabrá qué columna de cada tabla le indicará cuándo se creó una fila. No se cuelgue con el argumento "pero todos deben tener nombres únicos"; si está escribiendo una consulta, es mejor que sepa de qué tablas está sacando cada columna.
--Editar--
Acabo de recordar una excepción que hice en el pasado. Si una columna DateTime (o SmallDateTime) no contiene una porción de tiempo, solo la fecha, como un "recordatorio" pondría "Fecha" en el nombre de la columna, como "FechaHorada" en lugar de "Facturado" o "Facturado". Esto no debería aplicarse al rastrear cuándo se agregaron las filas, ya que también querría la hora.
El nombre debe comunicar qué significado comercial de los datos se encuentra en la columna ... "DateTime" es solo el tipo de datos. ¿Es cuando ocurrió el evento? cuando fue grabado? cuando fue almacenado en la base de datos? ¿Cuándo se modificaron los datos por última vez?
Si comunica eficientemente el significado de lo que contiene la columna, el nombre está bien. "DateTime" no está bien. "EventDateTime" es solo un poco mejor. Si la tabla contiene eventos, entonces cualquier campo de fecha y hora en la tabla es un EventDateTime (registra alguna fecha y hora relacionada con el evento). Aunque si solo hay una columna de fecha y hora en una tabla de "Eventos", EventDateTime implica que es cuando ocurrió el evento, por lo que probablemente esté bien.
Elija o seleccione el nombre para que comunique el significado del valor ...
Dada la pregunta editada, algunos nombres sugeridos podrían ser:
Ocurrió, o OccurredDateTime, o OccurredUTC, (u OccurredLocal), o, si los eventos en su modelo comercial tienen una duración, entonces quizás StartedUtc, o BeganUtc, o InitiatedUtc, etc.
Evitaría usar tipos de datos para los nombres de las columnas (una columna DATETIME llamada Fecha y hora), así que votaré por la primera opción.
Llamaría a la columna HappensAt, porque la fila describe un evento y el atributo (columna) en detalles de la pregunta cuando sucede. Como regla general trato de nombrar mis tablas con sustantivos singulares y mis atributos con frases que se pueden usar para leer, como
tablename (key) columnname columnvalue
Entonces yo podría decir
evento (131) HappensAt 21 de diciembre de 2009, 21:30
Sin embargo, esta no es una regla inviolable. Todavía registraría la fecha en que alguien nació en una columna de BirthDate, no en una columna de WasBornOn. Debe tener en cuenta los usos comunes del lenguaje natural cuando nombra cosas. Esfuércese por el uso natural y el resto seguirá. Sigue las reglas a ciegas y tus lectores lucharán por la comprensión.
Normalmente nombre columnas DATETIME como ACTION_WORD_on: created_on, completed_on, etc.
ACTION_WORD
define lo que representa la columna, y el sufijo ( _on
) indica que la columna representa el tiempo.
Se pueden usar otros sufijos (o incluso prefijos) para especificar el tipo de datos ( _at
, _UTC
, when_
, etc.).
Ser descriptivo Se consistente.
Prefiero crear columnas en el segundo formulario, aunque probablemente querría un nombre más descriptivo que el de Datetime, según cuál sea su uso.
Editar: en este tipo de situación, en realidad podría ir con un híbrido para ese campo único, y hacerlo ''EventDate'', ''StartDate'', o algo similar.
Probablemente usaría algo como " WhenRaisedUtc
".
Quizás solo soy yo, pero no creo que deba nombrar sus columnas con tipos de datos, ni replicar el nombre de la tabla en todos los campos.
hay muchas buenas respuestas aquí, así que no voy a duplicar. ¡Pero recuerde que nunca nombre una columna como palabra reservada!
también, realmente me gustan los nombres de columna en la opción 1.