Jawaban:
Anda harus menjelaskan tujuan kolom dan tidak harus tipe data. Anda dapat memasukkan tanggal / waktu / cap waktu dalam nama, tetapi Anda juga harus memasukkan artinya. Sebagai contoh
Menambahkan Tanggal / Waktu / Stempel Waktu dan semacamnya pada akhirnya sangat berguna ketika absennya pertentangan akan bertentangan dengan kolom lain. Misalnya, tabel mungkin memerlukan Status dan StatusTime.
Bagaimana dengan xyz_at
untuk timestamp
dan xyz_on
untuk date
bidang - misalnya start_at
atau start_on
?
Biasanya saya akan menghindari memasukkan tipe data dalam nama bidang - jauh lebih baik jika Anda dapat menyimpulkan apa yang perlu Anda ketahui tentang jenis dari nama bidang apa pun (bidang yang disebut description
tidak mungkin menjadi integer
) - tetapi bisa memberi tahu perbedaan antara a timestamp
dan a date
sering kali membantu.
Saya menggunakan:
updated_at
bisa juga. Tapi saya pikir jawabannya adalah, seperti biasa dengan penamaan, menggunakan nama paling ringkas yang menghilangkan semua ambiguitas realistis. Yaitu jika dalam konteks tertentu ada potensi untuk kebingungan tertentu, hilangkan itu, tetapi jangan menggunakan nama yang lebih bertele-tele daripada yang diperlukan untuk itu
Saya melihat profil Anda dan mengatakan Anda bekerja dengan SQL Server dan dalam SQL Server TIMESTAMP tipe data tidak ada hubungannya dengan tanggal atau waktu dan digunakan untuk jenis versi yang menginjak baris. Ini sangat berguna dalam mengidentifikasi baris mana yang telah dimodifikasi dari titik waktu tertentu.
Jika Anda menggunakan TIMESTAMP maka Anda tidak perlu menentukan nama kolom dan SQL Server akan membuat kolom "TimeStamp" untuk Anda. Tetapi disarankan untuk menggunakan tipe data "ROWVERSION" dan dalam hal ini Anda harus menentukan nama kolom.
Apa nama terbaik untuk kolom seperti ini? Itu tergantung, dan saya akan menggunakan sesuatu seperti VersionStamp, RV dll ... Yang saya anggap penting BUKAN bagaimana Anda menyebutkannya tetapi apakah Anda menggunakannya secara konsisten.
HTH
Ref: http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx
Saya menemukan bahwa menggunakan nama kolom seperti create_time
, update_time
dan expire_time
mengarah pada keterbacaan yang lebih baik ketika datang ke penamaan metode dan spesifikasi (RSpec).
Saya lebih suka menggunakan awalan DT untuk prangko tanggal. Sebagai contoh: DTOpened, DTClosed, DTLastAccessed. Ini memungkinkan saya daftar semua DTxxxx untuk referensi cepat dari semua perangko tanggal dalam tabel yang diberikan.
Saya bekerja untuk Texas Instruments, dan pada sistem mereka menggunakan xxxx_ dttm
Saya lebih suka menggunakan konvensi yang sudah ada.
Unix dan bahasa pemrograman memiliki konvensi yang diterima secara luas mtime
untuk Waktu Modifikasi
Untuk waktu pembuatan,
btime
crtime
otime
(jangan tanya, tebak "originasi").Jadi bagi saya, saya memilih mtime
, dan crtime
untuk data meta.
Untuk data yang diberikan pengguna, saya pergi dengan apa yang diwakili bidang tersebut. Jika ini hari ulang tahun, saya katakan saja user_birthday
.
Sejauh presisi, untuk beberapa tampaknya menggantung terlalu banyak presisi. Anda dapat menyimpan Anda birthdate
sebagai timestamp (setelah semua Anda secara teknis dilahirkan pada waktu hari), tetapi spesifikasi SQL telah dilemparkan dari presisi yang lebih tinggi ke presisi yang lebih rendah sehingga jika Anda menggunakan database yang layak ini seharusnya tidak menjadi masalah . Di aplikasi Anda sendiri, Anda selalu dapat memotong bila diperlukan. Artinya, saya tidak akan pernah pergi birthday_date
.
Saya akan menggunakan awalan yang bermakna dan _TSMP sebagai akhiran misalnya CREATION_TSMP atau LAST_UPDATE_TSMP
Seperti yang disarankan oleh @Evan Carroll, gunakan standar yang ada kecuali Anda memiliki alasan kuat untuk menghentikan polanya.
Jika ini adalah sesuatu yang baru maka Anda dapat mengikuti jawaban apa pun yang paling cocok untuk Anda.
Saya menggunakan * _on dan * _by karena ini membantu saya untuk tetap konsisten untuk kapan dan siapa baris:
- created_on & created_by
- updated_on & updated_by
- deleted_on & deleted_by -- soft delete
- approved_on & approved_by