タイムスタンプフィールドに最適な名前を​​付けるにはどうすればよいですか?


57

いくつかのタイムスタンプフィールド(または他の日付/時刻スタイルフィールド)を作成する場合、それらに名前を付ける最良の方法は何ですか?record_timestampを置くだけですか?

回答:


42

データ型ではなく、列の目的を説明する必要があります。名前に日付/時刻/タイムスタンプを含めることができますが、意味も含める必要があります。例えば

  • 作成日
  • 開始日
  • StatusTime
  • アクセス済み
  • 更新しました

最後に日付/時刻/タイムスタンプなどを追加すると、追加の不在が別の列と競合する場合に特に役立ちます。たとえば、テーブルにはStatusとStatusTimeの両方が必要な場合があります。


2
私の2セントを追加するだけです。私は多くのレガシーMRPシステムと連携し、CreatedOnUtcとUpdatedOnUtcが頻繁に使用されることを発見しました。
ジェオバニマルティネス

6
私はそれがまた、(少なくともRubyの世界では)ブール値を暗示することができるので、あいまいなことができる「更新」「アクセスさ」と考える
アルトゥルBeljajev

2
@GeovaniMartinezは、多くのSQLデータベース(PostgreSQLを含む)がUTCで保存され、クライアントのタイムゾーンで読み取られるため、混乱を招く可能性があります。
エヴァンキャロル

また、時間単位がUTC vs System Localの場合、列名に_UTCを指定します。後でコードを保守しなければならない私たち全員からありがとう。
ジョナサンファイト

追跡するために、かなり一般的なものである、アクセスまたは更新WHOとの曖昧な可能性は、アクセスおよび更新
ジョー・フィリップス

27

どの程度xyz_atのためにtimestampxyz_onのためのdateフィールド-例えばstart_atまたはstart_on

通常、私はフィールド名にデータ型を含めることを避けます-任意のフィールドの名前から型について知る必要があるものを推測できる場合ははるかに優れています(呼び出されるフィールドdescriptionはである可能性は低いですinteger)- 多くの場合、a timestampとaの違いdateが役立ちます。


16

私が使う:

  • created_at
  • updated_at

2
「at」は場所も意味します。「at」ではなく「when」についてはどうですか?
Sepster

1
「at」または「as at」は、法律文書および財務文書で頻繁に使用され、いつ何かが発生したかを示します。english.stackexchange.com/questions/112770/...
ニール・マクギガン

3
まだあいまいです。更新された時間と場所を知る必要がある場合はどうなりますか?updated_atどちらかです。しかし、答えは、いつものようにネーミングと同様に、すべての現実的な曖昧さを取り除く最も簡潔な名前を使用することだと思います。つまり、特定のコンテキストで特定の混乱の可能性がある場合は、それを排除しますが、そのために必要とされるより冗長な名前を使用しないでください
nafg

1
「オン」はどうですか。それは時間よりも日付を意味しますが、それはまだかなり明白です
ジョーフィリップス

6

私はあなたのプロファイルを調べましたが、SQL Serverで作業し、SQL ServerではTIMESTAMPデータ型は日付や時刻とは関係がなく、行の種類のスタンプに使用されます。これは、特定の時点から変更された行を識別するのに非常に役立ちます。

TIMESTAMPを使用する場合、列名を指定する必要はありません。SQLServerは列 "TimeStamp"を作成します。ただし、「ROWVERSION」データ型を使用することをお勧めします。この場合、列名を指定する必要があります。

このような列に最適な名前は何ですか?それは依存し、VersionStamp、RVなどのようなものを使用します...私が重要だと思うのは、あなたがそれを命名する方法ではなく、一貫してそれを一貫して使用しているということです。

HTH

参照:http : //msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx

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


3

私は、次のようなカラム名を使用していることを見つけcreate_timeupdate_timeそしてexpire_timeそれは方法の命名とスペック(RSpecの)になると、より良い可読性につながります。


1

日付スタンプにDTのプレフィックスを使用することを好みます。例:DTOpened、DTClosed、DTLastAccessed。これにより、特定のテーブル内のすべての日付スタンプのクイックリファレンスのために、すべてのDTxxxxをリストできます。



1

すでに存在する規約を使用することを好みます。

Unixやプログラミング言語は広く受け入れられているの大会持つmtimeための修正時間を

作成時間については、

  • BSDおよびWindowsはbirthtimeを使用します
  • Windowsは作成時間も使用します
  • xstatは btime
  • ext4使用 crtime
  • JFSとbtrfsが使用しますotime(「発信元」を推測して尋ねないでください)。

だから、私はを選びmtimecrtimeメタデータを選びます。

ユーザー提供のデータについては、フィールドが表すものを使用します。誕生日の場合、私は言うだけuser_birthdayです。

精度に関しては、一部の人にとっては精度が高すぎると思われます。あなたはbirthdateタイムスタンプとして保存することができます(一日のうちに技術的に生まれたすべての後) 。アプリ自体で、必要なときにいつでも切り捨てることができます。つまり、私は決して行きませんbirthday_date


0

意味のあるプレフィックスと_TSMPをサフィックスとして使用します(例:CREATION_TSMPまたはLAST_UPDATE_TSMP)


0

列名の一貫性を維持するために、次の構文を使用することをお勧めします。

dateCreated
dateUpdated
dateAccessed
dateStarted
date...

0

@Evan Carrollが示唆するように、パターンを破る強い理由がない限り、既存の標準に従ってください。

これが新しいものである場合は、自分に最適な回答に従うことができます。

* _onと* _byを使用するのは、行のいつ誰に対して一貫性を保つのに役立つためです。

- created_on & created_by
- updated_on & updated_by
- deleted_on & deleted_by -- soft delete
- approved_on & approved_by
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.