Comment nommer au mieux mes champs d'horodatage?


57

Quand je cherche à créer des champs d'horodatage (ou d'autres champs de style de date / heure), quel est le meilleur moyen de les nommer? Devrais-je simplement mettre record_timestamp?

Réponses:


42

Vous devez décrire le but de la colonne et pas nécessairement le type de données. Vous pouvez inclure la date, l'heure et l'horodatage dans le nom, mais vous devez également inclure le sens. Par exemple

  • Date de création
  • Date de début
  • StatusTime
  • Accédé
  • Mis à jour

L'ajout de date / heure / horodatage et ainsi de suite à la fin est particulièrement utile lorsque l'absence de l'ajout serait en conflit avec une autre colonne. Par exemple, une table peut nécessiter à la fois un statut et un statut.


2
Juste pour ajouter mes deux centimes. J'ai travaillé avec de nombreux systèmes MRP existants et j'ai constaté que CreatedOnUtc et UpdatedOnUtc était souvent utilisé.
Geovani Martinez

6
Je pense que "Accédé" et "Mis à jour" peuvent être ambigus, car cela peut aussi impliquer des valeurs booléennes (du moins dans le monde Ruby)
Artur Beljajev

2
@GeovaniMartinez peut être source de confusion, car de nombreuses bases de données SQL, y compris PostgreSQL, sont stockées au format UTC et lues dans le fuseau horaire du client.
Evan Carroll

Et si l'unité de temps est censée être UTC vs System Local, spécifiez _UTC dans le nom de la colonne. Merci de nous tous qui devons maintenir le code plus tard.
Jonathan Fite

Accédé et mis à jour pourrait être ambigu avec OMS accédé ou mis à jour, ce qui est une chose assez commune à suivre
Joe Phillips

27

Que diriez-vous xyz_atd'un timestampet xyz_onpour un datedomaine - par exemple start_atou start_on?

Normalement, j'éviterais d'inclure le type de données dans le nom du champ - beaucoup mieux si vous pouvez déduire ce que vous devez savoir sur le type à partir du nom de n'importe quel champ (un champ appelé a descriptionpeu de chances d'être un integer) - mais être capable de le dire la différence entre a timestampet a dateest souvent utile.


16

J'utilise:

  • créé à
  • updated_at

2
"at" peut aussi impliquer l'emplacement. Qu'en est-il de "quand" au lieu de "à"?
Sepster

1
"at" ou "as at" est fréquemment utilisé dans les documents juridiques et financiers pour faire référence à quelque chose qui s'est passé. french.stackexchange.com/questions/112770/…
Neil McGuigan

3
Cela peut encore être ambigu. Que faire si vous avez besoin de connaître l'heure et le lieu où a été mis à jour? updated_atpourrait être soit. Mais je pense que la réponse est, comme toujours avec l'attribution de nom, d'utiliser le nom le plus concis qui élimine toute ambiguïté réaliste. C'est-à-dire que si, dans un contexte donné, il existe un risque de confusion, éliminez-la, mais n'utilisez pas de noms plus verbeux que nécessaire
nafg

1
que diriez-vous de "sur". Même si cela implique une date plus qu'une fois, c'est quand même assez évident
Joe Phillips

6

J'ai regardé votre profil et il indique que vous travaillez avec SQL Server et que dans SQL Server, le type de données TIMESTAMP n'a rien à voir avec la date ou l'heure et son type de version estampillant les lignes. Ceci est très utile pour identifier quelles lignes ont été modifiées à partir d'un moment donné.

Si vous utilisez TIMESTAMP, vous n'avez pas besoin de spécifier un nom de colonne et SQL Server créera une colonne "TimeStamp" pour vous. Mais il est recommandé d'utiliser le type de données "ROWVERSION" et dans ce cas, vous devez spécifier le nom de la colonne.

Quel est le meilleur nom pour une colonne comme celle-ci? Cela dépend, et j'utiliserais quelque chose comme VersionStamp, RV, etc. Ce que j'estime important, ce n'est PAS comment vous le nommez, mais vous l'utilisez systématiquement dans tous les domaines.

HTH

Réf.: Http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx

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


3

J'ai constaté que l'utilisation de noms de colonne tels que create_time, update_timeet expire_timeconduit à une meilleure lisibilité en matière de nommage de méthode et de spécification (RSpec).


1

Je préfère utiliser un préfixe DT pour les horodatages. Par exemple: DTOpened, DTClosed, DTLastAccessed. Cela me permet de répertorier tous les DTxxxx pour une référence rapide de tous les horodatages d'une table donnée.


1

Je travaille pour Texas Instruments, et sur leurs systèmes, ils utilisent xxxx_ dttm


1

Je préfère utiliser des conventions existantes.

Unix et les langages de programmation ont une convention largement acceptée de mtimepour Modification Time

Pour le moment de la création,

  • BSD et Windows utilisent l'heure de la naissance
  • Windows utilise également l'heure de création
  • xstat utilise btime
  • Ext4 utilise crtime
  • JFS et btrfs utilisent otime(ne demandez pas, devinant "l'origine").

Donc, pour moi, je choisis mtime, et crtimepour les méta-données.

Pour les données fournies par l'utilisateur, je vais avec ce que le champ représente. Si c'est un anniversaire, je dis juste user_birthday.

En ce qui concerne la précision, il semble que, pour certains, il soit trop long. Vous pouvez stocker votre birthdatehorodatage (après tout, votre naissance technique à une heure de la journée), mais les spécifications SQL prévoient des conversions allant d'une précision supérieure à une précision inférieure. Si vous utilisez une base de données correcte, cela ne devrait pas poser problème. . Dans votre application elle-même, vous pouvez toujours tronquer lorsque vous en avez besoin. C'est-à-dire que je n'irais jamais birthday_date.


0

J'utilisais un préfixe significatif et _TSMP comme suffixe, par exemple CREATION_TSMP ou LAST_UPDATE_TSMP


0

Afin de maintenir la cohérence entre les noms de colonnes, je vous suggère la syntaxe suivante:

dateCreated
dateUpdated
dateAccessed
dateStarted
date...

0

Comme le suggère @Evan Carroll, respectez les normes existantes, à moins que vous n’ayez de bonnes raisons de casser le schéma.

S'il s'agit de quelque chose de nouveau, vous pouvez suivre la réponse qui vous convient le mieux.

J'utilise * _on et * _by car cela m'aide à le garder cohérent pour quand et qui du rang:

- created_on & created_by
- updated_on & updated_by
- deleted_on & deleted_by -- soft delete
- approved_on & approved_by
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.