Wie sollte ich meine Zeitstempelfelder am besten benennen?

57

Wie kann ich einige Zeitstempelfelder (oder andere Datums- / Zeitstilfelder) am besten benennen? Soll ich einfach record_timestamp setzen?

Garik
quelle

Antworten:

42

Sie sollten den Zweck der Spalte und nicht unbedingt den Datentyp beschreiben. Sie können Datum / Uhrzeit / Zeitstempel in den Namen aufnehmen, sollten aber auch die Bedeutung angeben. Zum Beispiel

  • Erstellungsdatum
  • Anfangsdatum
  • StatusTime
  • Zugegriffen
  • Aktualisiert

Das Hinzufügen von Datum / Uhrzeit / Zeitstempel und dergleichen am Ende ist besonders nützlich, wenn das Fehlen des Hinzufügens zu einem Konflikt mit einer anderen Spalte führen würde. Beispielsweise benötigt eine Tabelle möglicherweise sowohl einen Status als auch eine StatusTime.

Leigh Riffel
quelle
2
Nur um meine zwei Cent hinzuzufügen. Ich habe mit vielen älteren MRP-Systemen gearbeitet und festgestellt, dass CreatedOnUtc und UpdatedOnUtc häufig verwendet werden.
Geovani Martinez
6
Ich denke, "Accessed" und "Updated" können mehrdeutig sein, da sie (zumindest in der Ruby-Welt) auch Boolean implizieren können
Artur Beljajev
2
@GeovaniMartinez das kann verwirrend sein, da viele SQL-Datenbanken, einschließlich PostgreSQL, um UTC speichern und die Zeitzone des Clients einlesen.
Evan Carroll
Und wenn die Zeiteinheit UTC oder System Local sein soll, geben Sie _UTC im Spaltennamen an. Vielen Dank von uns allen, die den Code später pflegen müssen.
Jonathan Fite
Der Zugriff und die Aktualisierung können mit dem Zugriff oder der Aktualisierung durch die WHO nicht eindeutig sein, was ziemlich häufig zu verfolgen ist
Joe Phillips,
27

Wie wäre es xyz_atfür ein timestampund xyz_onfür ein dateFeld - zB start_atoder start_on?

Normalerweise würde ich es vermeiden, den Datentyp in den Feldnamen aufzunehmen - viel besser, wenn Sie aus dem Namen eines Feldes (ein Feld mit dem Namen descriptionist wahrscheinlich kein Feld) ableiten können, was Sie über den Typ wissen müssen integer-, aber in der Lage zu sein, dies zu sagen Der Unterschied zwischen a timestampund a dateist oft hilfreich.

Jack Douglas
quelle
16

Ich benutze:

  • hergestellt in
  • aktualisiert am
David LeBauer
quelle
2
"at" kann auch Ort bedeuten. Was ist mit "wann" statt "um"?
22.
1
"at" oder "as at" wird häufig in rechtlichen und finanziellen Dokumenten verwendet, um darauf hinzuweisen, wann etwas passiert ist. english.stackexchange.com/questions/112770/...
Neil McGuigan
3
Es kann immer noch mehrdeutig sein. Was ist, wenn Sie die Uhrzeit und den Ort kennen müssen, an dem die Aktualisierung durchgeführt wurde? updated_atKönnte beides sein. Aber ich denke, die Antwort ist, wie immer beim Benennen, den prägnantesten Namen zu verwenden, der alle realistischen Unklarheiten beseitigt. Dh wenn in einem bestimmten Kontext die
Gefahr
1
wie wäre es mit "on". Obwohl es ein Datum mehr als eine Zeit impliziert, ist es immer noch ziemlich offensichtlich
Joe Phillips
6

Ich habe mir Ihr Profil angesehen und es besagt, dass Sie mit SQL Server arbeiten und der Datentyp TIMESTAMP in SQL Server nichts mit Datum oder Uhrzeit zu tun hat und für die Art der Versionsstempelung der Zeilen verwendet wird. Dies ist sehr nützlich, um festzustellen, welche Zeilen zu einem bestimmten Zeitpunkt geändert wurden.

Wenn Sie TIMESTAMP verwenden, müssen Sie keinen Spaltennamen angeben, und SQL Server erstellt eine Spalte "TimeStamp" für Sie. Es wird jedoch empfohlen, den Datentyp "ROWVERSION" zu verwenden. In diesem Fall müssen Sie den Spaltennamen angeben.

Was ist der beste Name für eine solche Spalte? Es hängt davon ab, und ich würde so etwas wie VersionStamp, RV usw. verwenden. Was ich für wichtig halte, ist NICHT, wie Sie es nennen, sondern verwenden Sie dies durchweg.

HTH

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

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

Sankar Reddy
quelle
3

Ich fand , dass Spaltennamen wie create_time, update_timeund expire_timeführt zu einer besseren Lesbarkeit , wenn es um Verfahren Namensgebung kommt und Spezifikationen (RSpec).

Artur Beljajev
quelle
1

Ich bevorzuge ein Präfix von DT für Datumsstempel. Zum Beispiel: DTOpened, DTClosed, DTLastAccessed. Auf diese Weise kann ich alle DTxxxx auflisten, um eine schnelle Referenz aller Datumsstempel in einer bestimmten Tabelle zu erhalten.

Michael Riley - AKA Gunny
quelle
1

Ich arbeite für Texas Instruments und auf ihren Systemen verwenden sie xxxx_dttm

Barry McQuery
quelle
1

Ich bevorzuge die Verwendung von Konventionen, die bereits existieren.

Unix und Programmiersprachen haben eine weithin akzeptierte Konvention mtimefür die Änderungszeit

Für die Erstellungszeit,

  • BSD und Windows verwenden die Geburtszeit
  • Windows verwendet auch die Erstellungszeit
  • xstat verwendet btime
  • ext4 verwendet crtime
  • JFS und btrfs verwenden otime(nicht fragen, "Herkunft" erraten).

Also für mich, ich wähle mtimeund crtimefür Metadaten.

Für vom Benutzer bereitgestellte Daten gehe ich mit dem, was das Feld darstellt. Wenn es Geburtstag ist, sage ich nur user_birthday.

Was die Präzision betrifft, scheint es für manche zu viel Präzision zu geben. Sie können Ihre birthdateDaten als Zeitstempel speichern (nachdem Sie zu einer bestimmten Tageszeit technisch geboren wurden), aber die SQL-Spezifikation enthält Umwandlungen von höherer Präzision zu niedriger Präzision. Wenn Sie also eine anständige Datenbank verwenden, sollte dies kein Problem sein . In Ihrer App selbst können Sie bei Bedarf immer abschneiden. Das heißt, ich würde nie gehen birthday_date.

Evan Carroll
quelle
0

Ich würde ein aussagekräftiges Präfix und _TSMP als Suffix verwenden, z. B. CREATION_TSMP oder LAST_UPDATE_TSMP

Paddy Carroll
quelle
0

Um die Konsistenz über Spaltennamen hinweg zu gewährleisten, würde ich Ihnen die folgende Syntax vorschlagen:

dateCreated
dateUpdated
dateAccessed
dateStarted
date...
Andreas
quelle
0

Verwenden Sie, wie von @Evan Carroll vorgeschlagen, die vorhandenen Standards, es sei denn, Sie haben guten Grund, das Muster zu brechen.

Wenn dies etwas Neues ist, können Sie jeder Antwort folgen, die am besten zu Ihnen passt.

Ich benutze * _on und * _by, weil es mir hilft, es für wann und wer in der Zeile konsistent zu halten:

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