Wenn ich Zeitstempelfelder (oder andere Felder im Datums-/Zeitstil) erstellen möchte, wie kann ich sie am besten benennen? Soll ich nur record_timestamp setzen?
Sie sollten den Zweck der Spalte und nicht unbedingt den Datentyp beschreiben. Sie können Datum/Uhrzeit/Zeitstempel in den Namen aufnehmen, aber Sie sollten auch die Bedeutung angeben. Zum Beispiel
Das Hinzufügen von Datum/Uhrzeit/Zeitstempel und dergleichen am Ende ist besonders nützlich, wenn das Fehlen des Hinzufügens mit einer anderen Spalte in Konflikt stehen würde. Beispielsweise benötigt eine Tabelle möglicherweise sowohl einen Status als auch eine StatusTime.
Wie wäre es mit xyz_at
für ein timestamp
und xyz_on
für ein date
Feld - zB start_at
oder start_on
?
Normalerweise würde ich es vermeiden, den Datentyp in den Feldnamen aufzunehmen - viel besser, wenn Sie aus dem Namen eines Feldes ableiten können, was Sie über den Typ wissen müssen (ein Feld mit dem Namen description
ist wahrscheinlich kein integer
) - aber es ist oft hilfreich, den Unterschied zwischen einem timestamp
und einem date
erkennen zu können.
Ich benutze:
Ich habe mir Ihr Profil angesehen und es heißt, Sie arbeiten mit SQL Server und in SQL Server hat der Datentyp TIMESTAMP nichts mit Datum oder Uhrzeit zu tun und wird zum Versionsstempeln der Zeilen verwendet. 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 kommt darauf an, und ich würde so etwas wie VersionStamp, RV usw. verwenden. Was ich für wichtig halte, ist NICHT, wie Sie es benennen, sondern verwenden Sie es konsequent auf der ganzen Linie.
HTH
Ref: http://msdn.Microsoft.com/en-us/library/ms182776 (v = sql.90) .aspx
Ich fand, dass mit Spaltennamen wie create_time
, update_time
und expire_time
führt zu einer besseren Lesbarkeit, wenn es um Methodennamen und Spezifikationen (RSpec) geht.
Ich bevorzuge bereits vorhandene Konventionen.
Unix und Programmiersprachen haben eine allgemein akzeptierte Konvention von mtime
für Änderungszeit
Für die Erstellungszeit
btime
crtime
otime
(fragen Sie nicht und raten Sie "Herkunft").Also wähle ich für Metadaten mtime
und crtime
.
Für vom Benutzer bereitgestellte Daten gehe ich mit dem, was das Feld darstellt. Wenn es ein Geburtstag ist, sage ich einfach user_birthday
.
Was die Präzision angeht, scheint es für einige zu viel Präzision aufzuhängen. Sie können Ihr birthdate
als Zeitstempel speichern (schließlich wurden Sie zu einer Tageszeit technisch geboren), aber die SQL-Spezifikation weist Umwandlungen von höherer Genauigkeit zu niedrigerer Genauigkeit auf, wenn Sie also eine anständige Datenbank verwenden sollte kein Problem sein. In Ihrer App selbst können Sie bei Bedarf jederzeit abschneiden. Das heißt, ich würde niemals gehen birthday_date
.
Um die Konsistenz zwischen den Spaltennamen zu gewährleisten, würde ich Ihnen die folgende Syntax empfehlen:
dateCreated
dateUpdated
dateAccessed
dateStarted
date...
Ich bevorzuge die Verwendung eines DT-Präfixes 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.
Ich arbeite für Texas Instruments und auf ihren Systemen verwenden sie xxxx _dttm
Befolgen Sie, wie von @Evan Carroll vorgeschlagen, die bestehenden Standards, es sei denn, Sie haben einen starken 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 der Reihe konsistent zu halten:
- created_on & created_by
- updated_on & updated_by
- deleted_on & deleted_by -- soft delete
- approved_on & approved_by
Ich würde ein aussagekräftiges Präfix und _TSMP als Suffix verwenden, z. CREATION_TSMP oder LAST_UPDATE_TSMP