it-swarm.it

Come dovrei nominare al meglio i miei campi timestamp?

Quando sto cercando di creare alcuni campi data/ora (o altri campi stile/data), qual è il modo migliore per nominarli? Devo solo mettere record_timestamp?

61
garik

Dovresti descrivere lo scopo della colonna e non necessariamente il tipo di dati. Puoi includere data/ora/data/ora nel nome, ma dovresti anche includerne il significato. Per esempio

  • Data di creazione
  • Data d'inizio
  • StatusTime
  • Accessed
  • Aggiornato

L'aggiunta di data/ora/timestamp e simili alla fine è particolarmente utile quando l'assenza dell'aggiunta sarebbe in conflitto con un'altra colonna. Ad esempio, una tabella potrebbe richiedere sia uno Status che uno StatusTime.

44
Leigh Riffel

Che ne dite di xyz_at per un timestamp e xyz_on per un campo date - ad esempio start_at o start_on?

Normalmente eviterei di includere il tipo di dati nel nome del campo - molto meglio se riesci a dedurre ciò che devi sapere sul tipo dal nome di qualsiasi campo (è improbabile che un campo chiamato description sia un integer) - ma essere in grado di dire la differenza tra un timestamp e un date è spesso utile.

Io uso:

  • created_at
  • updated_at
18
David LeBauer

Ho esaminato il tuo profilo e mi dice che lavori con SQL Server e in SQL Server il tipo di dati TIMESTAMP non ha nulla a che fare con la data o l'ora e viene utilizzato per il tipo di versione che timbra le righe. Questo è molto utile per identificare quali righe sono state modificate da un determinato momento.

Se si utilizza TIMESTAMP, non è necessario specificare un nome di colonna e SQL Server creerà una colonna "TimeStamp" per te. Ma si consiglia di utilizzare il tipo di dati "ROWVERSION" e in questo caso è necessario specificare il nome della colonna.

Qual è il nome migliore per una colonna come questa? Dipende, e userei qualcosa come VersionStamp, RV ecc ... Quello che considero importante NON è come lo chiami, ma lo stai usando in modo coerente su tutta la linea.

HTH

Rif: http://msdn.Microsoft.com/en-us/library/ms182776 (v = sql.90) .aspx

http://msdn.Microsoft.com/en-us/library/ms182776.aspx

6
Sankar Reddy

Ho scoperto che usando i nomi delle colonne come create_time, update_time e expire_time migliora la leggibilità quando si tratta di denominazione e specifiche dei metodi (RSpec).

3
Artur Beljajev

Preferisco usare convenzioni già esistenti.

Unix e linguaggi di programmazione hanno una convenzione ampiamente accettata di mtime per Tempo di modifica

Per il momento della creazione,

  • BSD e Windows usano la nascita
  • Windows utilizza anche Tempo di creazione
  • xstat usa btime
  • ext4 usa crtime
  • JFS e btrfs usano otime (non chiedere, indovinando "origine").

Quindi per me, scelgo mtime e crtime per i metadati.

Per i dati forniti dall'utente, vado con ciò che il campo rappresenta. Se è un compleanno, dico solo user_birthday.

Per quanto riguarda la precisione, per alcuni sembra appenderli a troppa precisione. Puoi archiviare il tuo birthdate come un timestamp (dopo tutto sei nato tecnicamente in un momento della giornata), ma le specifiche SQL hanno cast da più alta precisione a più bassa precisione quindi se stai usando un database decente questo non dovrebbe essere un problema. Nella tua stessa app, puoi sempre troncare quando necessario. Vale a dire, non vorrei mai andare birthday_date.

2
Evan Carroll

Per mantenere la coerenza tra i nomi delle colonne, ti suggerirei la seguente sintassi:

dateCreated
dateUpdated
dateAccessed
dateStarted
date...
1
Andreas

Preferisco usare un prefisso di DT per i timbri data. Ad esempio: DTOpened, DTClosed, DTLastAccessed. Questo mi consente di elencare tutti i DTxxxx per un rapido riferimento di tutti i timbri data in una determinata tabella.

Lavoro per Texas Instruments e sui loro sistemi usano xxxx _dttm

1
Barry McQuery

Come suggerito da @Evan Carroll, segui gli standard esistenti a meno che tu non abbia validi motivi per interrompere il modello.

Se si tratta di qualcosa di nuovo, puoi seguire qualsiasi risposta più adatta a te.

Uso * _on e * _by perché mi aiuta a mantenerlo coerente per quando e chi della riga:

- created_on & created_by
- updated_on & updated_by
- deleted_on & deleted_by -- soft delete
- approved_on & approved_by
1
Shaunak Sontakke

Vorrei usare un prefisso significativo e _TSMP come suffisso, ad es. CREATION_TSMP o LAST_UPDATE_TSMP

0
Paddy Carroll