Lorsque je cherche à créer des champs d'horodatage (ou d'autres champs de style date/heure), quelle est la meilleure façon de les nommer? Dois-je simplement mettre record_timestamp?
Vous devez décrire l'objectif de la colonne et pas nécessairement le type de données. Vous pouvez inclure la date/heure/horodatage dans le nom, mais vous devez également inclure la signification. Par exemple
L'ajout de Date/Heure/Horodatage et autres à la fin est particulièrement utile lorsque l'absence de l'addition entrerait en conflit avec une autre colonne. Par exemple, une table peut avoir besoin à la fois d'un statut et d'un statut.
Que diriez-vous xyz_at
pour un timestamp
et xyz_on
pour un champ date
- par exemple start_at
ou start_on
?
Normalement, j'éviterais d'inclure le type de données dans le nom du champ - bien mieux si vous pouvez déduire ce que vous devez savoir sur le type à partir du nom d'un champ (un champ appelé description
est peu susceptible d'être un integer
) - mais être capable de faire la différence entre un timestamp
et un date
est souvent utile.
J'utilise:
J'ai regardé votre profil et il dit que vous travaillez avec SQL Server et dans SQL Server, le type de données TIMESTAMP n'a rien à voir avec la date ou l'heure et son type de version estampillé les lignes. Ceci est très utile pour identifier les lignes qui 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 je considère important n'est PAS la façon dont vous le nommez mais l'utilisez-vous de manière cohérente dans tous les domaines.
HTH
Réf: http://msdn.Microsoft.com/en-us/library/ms182776 (v = sql.90) .aspx
J'ai constaté que l'utilisation de noms de colonnes tels que create_time
, update_time
et expire_time
conduit à une meilleure lisibilité en matière de dénomination et de spécifications de méthode (RSpec).
je préfère utiliser des conventions qui existent déjà.
Unix et les langages de programmation ont une convention largement acceptée de mtime
pour Temps de modification
Pour le temps de création,
btime
crtime
otime
(ne demandez pas, devinez "origine").Donc pour moi, je choisis mtime
et crtime
pour les métadonnées.
Pour les données fournies par l'utilisateur, je choisis ce que le champ représente. Si c'est un anniversaire, je dis simplement user_birthday
.
En ce qui concerne la précision, pour certains, cela semble les accrocher à trop de précision. Vous pouvez stocker votre birthdate
sous forme d'horodatage (après tout, vous étiez techniquement né à une heure de la journée), mais la spécification SQL a des conversions de plus haute précision à une précision plus faible, donc si vous utilisez une base de données décente, cette ne devrait pas être un problème. Dans votre application elle-même, vous pouvez toujours tronquer en cas de besoin. C'est-à-dire que je n'irais jamais birthday_date
.
Afin de maintenir la cohérence entre les noms de colonne, je vous suggère la syntaxe suivante:
dateCreated
dateUpdated
dateAccessed
dateStarted
date...
Je préfère utiliser un préfixe DT pour les timbres à date. Par exemple: DTOpened, DTClosed, DTLastAccessed. Cela me permet de répertorier tous les DTxxxx pour une référence rapide de tous les timbres à date dans un tableau donné.
Je travaille pour Texas Instruments, et sur leurs systèmes, ils utilisent xxxx _dttm
Comme le suggère @Evan Carroll, respectez les normes existantes, sauf si vous avez de bonnes raisons de casser le modèle.
Si c'est quelque chose de nouveau, vous pouvez suivre n'importe quelle réponse qui vous convient le mieux.
J'utilise * _on et * _by car cela m'aide à rester cohérent pour quand et qui de la ligne:
- created_on & created_by
- updated_on & updated_by
- deleted_on & deleted_by -- soft delete
- approved_on & approved_by
Je voudrais utiliser un préfixe significatif et _TSMP comme suffixe, par exemple CREATION_TSMP ou LAST_UPDATE_TSMP