DATETIME列の命名規則は何ですか(私の場合、MS SQL Serverを使用)
行がいつ作成されたかを格納する列の場合CreatedDatetime意味があります、またはLastModifiedDatetime。
ただし、単純なテーブルの場合、たとえばEventという名前のテーブルの場合、次のような列を作成しますか。
EventID, // Primary key
EventDatetime, // When the event is happening
EventEnabled // Is the event is on
または
ID, // Primary key
Datetime, // When the event is happening
Enabled // Is the event is on
どちらの規則も使用しない場合:使用する列名を入力してください。
私は通常、DATETIME列にACTION_Word_on: created_on, completed_on, etc.
という名前を付けます
ACTION_Word
は列が何を表すかを定義し、接尾辞(_on
)は列が時間を表すことを示します。
他のサフィックス(またはプレフィックス)を使用して、データ型(_at
、_UTC
、when_
など)を指定できます。
説明的であること。一貫性を保つ。
EventIDIntまたはEventEnbaledVarcharも使用しないのに、なぜそれをEventDateTimeと呼ぶのですか?列名にデータ型を含めるのはなぜですか? (私の経験則では、テーブル内のデータにアクセスしている場合は、列のデータ型が何であるかをよく知っています。そうでない場合は、何を扱っているのかわからないためです。)
最近、私は次のような説明的な列名として考えるものを好みます。
日付を作成します
DateCreated
CreatedAt
CreatedOn(時間部分がない場合)
AddedOn(データによっては、意味的に適切な場合があります)
「ラベル」を選び、その種類のデータを必要とするすべてのテーブルで一貫して使用することも良いことです。たとえば、(ほぼ)すべてのテーブルに「CreateDate」列を含めることは問題ありません。これにより、すべてのテーブルのどの列に行が作成されたかが常にわかります。 「しかし、それらはすべて一意の名前を持っている必要があります」という議論にとらわれないでください。クエリを作成している場合は、各列を取得しているテーブルを知っておく必要があります。
-編集-
過去に行った例外を思い出しました。 DateTime(またはSmallDateTime)列に時間部分が含まれず、日付のみが「リマインダー」として含まれる場合は、列名に「Billed」や「BilledOn」の代わりに「BilledDate」などの「Date」を入力します。行がいつ追加されたかを追跡する場合も、時間が必要になるため、これは適用されません。
名前は、データのビジネス上の意味が列にあることを伝える必要があります...「DateTime」はデータのタイプにすぎません。イベントが起こったときですか?いつ録音されたの? DBに保存されたのはいつですか?データが最後に変更されたのはいつですか?
列に含まれる内容の意味を効率的に伝達する場合、名前は問題ありません。 「DateTime」は問題ありません。 「EventDateTime」はごくわずかに優れています。テーブルにイベントが含まれている場合、テーブル内の日時フィールドはすべてEventDateTimeです(イベントに関連する日時が記録されます)。 「イベント」テーブルにone datetime列しかない場合でも、EventDateTimeは、イベントが発生したときであることを意味します。それはおそらく大丈夫です。
値の意味を伝えるように名前を選択または選択します。
編集された質問を考えると、いくつかの提案された名前は次のようになります。
Occurred、OccurredDateTime、OccurredUTC(またはOccurredLocal)、またはビジネスモデルのイベントに期間がある場合は、StartedUtc、BeganUtc、InitiatedUtcなど。
私は2番目の形式で列を作成することを好みますが、用途によっては、Datetimeよりもわかりやすい名前が必要になる可能性があります。
編集:この種の状況では、実際にはその単一のフィールドにハイブリッドを使用して、「EventDate」、「StartDate」、または同様のものにすることができます。
それは私だけかもしれませんが、列にデータ型の名前を付ける必要はないと思います。また、フィールド全体にテーブル名を複製する必要もありません。
この行はイベントを記述し、問題の属性(列)は詳細に記述されているため、列をHappensAtと呼びますいつ発生します。原則として、テーブルには単数名詞を使用し、属性には読み取りに使用できるフレーズを使用します。
tablename(key)columname columnvalue
だから私は言うことができるでしょう
イベント(131)発生2009年12月21日21:30
ただし、これは不可侵のルールではありません。 WasBornOn列ではなく、BirthDate列に誰かが生まれた日付を記録します。名前を付けるときは、自然言語の一般的な使用法を覚えておく必要があります。自然な使用法を目指してください、そして残りは続きます。盲目的にルールに従うと、読者は理解に苦労します。
ここには良い答えがたくさんあるので、複製しません。ただし、覚えておいてください列に予約語の名前を付けないでください!!!
また、オプション1の列名が本当に気に入っています。
列名にデータ型(Datetimeと呼ばれるDATETIME列)を使用することは避けたいので、最初のオプションに投票します。
「WhenRaisedUtc
」のようなものを使用する可能性があります。