Quando estou procurando criar alguns campos de carimbo de data/hora (ou outros campos de estilo de data/hora), qual é a melhor maneira de nomeá-los? Devo apenas colocar record_timestamp?
Quando estou procurando criar alguns campos de carimbo de data/hora (ou outros campos de estilo de data/hora), qual é a melhor maneira de nomeá-los? Devo apenas colocar record_timestamp?
Você deve descrever a finalidade da coluna e não necessariamente o tipo de dados. Você pode incluir data/hora/timestamp no nome, mas também deve incluir o significado. Por exemplo
A adição de Data/Hora/Carimbo de data e hora e tal no final é particularmente útil quando a ausência da adição entraria em conflito com outra coluna. Por exemplo, uma tabela pode precisar de um Status e um StatusTime.
Que tal
xyz_at
para umtimestamp
exyz_on
para umdate
campo - por exemplostart_at
oustart_on
?Normalmente, eu evitaria incluir o tipo de dados no nome do campo - muito melhor se você puder inferir o que precisa saber sobre o tipo a partir do nome de qualquer campo (
description
é improvável que um campo chamado seja uminteger
) - mas ser capaz de dizer a diferença entre atimestamp
e adate
é frequentemente útil.Eu uso:
create_time
Descobri que usar nomes de coluna comoupdate_time
eexpire_time
leva a uma melhor legibilidade quando se trata de nomenclatura e especificações de métodos (RSpec).Eu olhei para o seu perfil e diz que você trabalha com SQL Server e no SQL Server o tipo de dados TIMESTAMP não tem nada a ver com data ou hora e é usado para tipo de versão carimbando as linhas. Isso é muito útil para identificar quais linhas foram modificadas a partir de um determinado ponto no tempo.
Se você usar TIMESTAMP, não precisará especificar um nome de coluna e o SQL Server criará uma coluna "TimeStamp" para você. Mas é recomendado usar o tipo de dados "ROWVERSION" e neste caso você deve especificar o nome da coluna.
Qual é o melhor nome para uma coluna como esta? Depende, e eu usaria algo como VersionStamp, RV etc.
HTH
Ref: http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx
http://msdn.microsoft.com/en-us/library/ms182776.aspx
Não existe uma maneira exata de fazer isso, a única coisa importante é ser consistente em sua base de código e bancos de dados para que os desenvolvedores não fiquem confusos.
A nomenclatura exata depende das convenções de idioma, mas eu escolheria uma das seguintes opções abaixo:
Praticamente todos os campos são armazenados como timestamp, haverá alguns campos obrigatórios como data, mas geralmente eles estão mais relacionados ao domínio da empresa e podem ser nomeados de acordo com a próxima solicitação
Todos os campos de carimbo de data/hora a serem armazenados em UTC.
Eu prefiro usar convenções que já existem.
As linguagens Unix e de programação têm uma convenção amplamente aceita de Tempo
mtime
de ModificaçãoPara o tempo de criação,
btime
crtime
otime
(não pergunte, adivinhando "origem").Então, para mim, eu escolho
mtime
ecrtime
para metadados.Para dados fornecidos pelo usuário, vou com o que o campo representa. Se é um aniversário, eu apenas digo
user_birthday
.No que diz respeito à precisão, para alguns parece pendurá-los em muita precisão. Você pode armazenar seu
birthdate
como um carimbo de data/hora (afinal, você nasceu tecnicamente em uma hora do dia), mas a especificação SQL foi convertida de alta precisão para menor precisão, portanto, se você estiver usando um banco de dados decente, isso não deve ser um problema . Em seu próprio aplicativo, você sempre pode truncar quando necessário. Ou seja, eu nunca iriabirthday_date
.Eu prefiro usar um prefixo de DT para carimbos de data. Por exemplo: DTOpened, DTClosed, DTLastAccessed. Isso me permite listar todos os DTxxxx para uma referência rápida de todos os carimbos de data em uma determinada tabela.
Eu trabalho para a Texas Instruments, e em seus sistemas eles usam xxxx_ dttm
Para manter a consistência entre os nomes das colunas, sugiro que você use a seguinte sintaxe: