Відповіді:
Ви повинні описати призначення стовпця, а не обов'язково типу даних. Ви можете включити дату / час / позначку часу в назві, але ви також повинні містити значення. Наприклад
Додавання дати / часу / мітки часу та іншого в кінці особливо корисно, коли абсцес додавання суперечить іншому стовпцю. Наприклад, таблиці може знадобитися як Status, так і StatusTime.
Як щодо xyz_at
для timestamp
і xyz_on
для date
поля - наприклад , start_at
або start_on
?
Як правило, я б уникав включати тип даних у назву поля - набагато краще, якщо ви можете зробити висновок про те, що вам потрібно знати про тип із імені будь-якого поля (назване поле description
навряд чи буде integer
), але буду в змозі сказати різниця між a timestamp
і a date
часто корисна.
Я використовую:
updated_at
може бути будь-який. Але я думаю, що у відповіді, як завжди при називанні, використовуйте найбільш стисле ім’я, яке усуває всю реалістичну неоднозначність. Тобто, якщо в конкретному контексті є певна плутанина, усуньте її, але не використовуйте імена, які є більш багатослівними, ніж це потрібно для цього
Я переглянув ваш профіль, і він говорить про те, що ви працюєте з SQL Server і в SQL Server тип даних TIMESTAMP не має нічого спільного з датою чи часом, і його використовується для виду версії, що відбиває рядки. Це дуже корисно для визначення того, які рядки були змінені за певний момент часу.
Якщо ви використовуєте TIMESTAMP, вам не потрібно вказувати ім’я стовпця, і SQL Server створить колонку "TimeStamp" для вас. Але рекомендується використовувати тип даних "ROWVERSION", і в цьому випадку потрібно вказати назву стовпця.
Яке найкраще ім’я для такої колонки? Це залежить, і я б використовував щось на зразок VersionStamp, RV тощо ... Що я вважаю важливим, це НЕ, як ви його називаєте, а чи використовуєте ви це послідовно в усьому світі.
HTH
Посилання: http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx
Я виявив, що використання назв стовпців, таких як create_time
, update_time
і expire_time
призводить до кращої читабельності, коли мова йде про іменування методів та специфікації (RSpec).
Я вважаю за краще використовувати префікс DT для штампів дати. Наприклад: DTOpened, DTClosed, DTLastAccessed. Це дозволяє мені перерахувати всі DTxxxx для швидкого ознайомлення з усіма марками дати в даній таблиці.
Я працюю в Texas Instruments, а в їхніх системах вони використовують xxxx_ dttm
Я вважаю за краще використовувати конвенції, які вже існують.
У Unix та мовах програмування є широко прийнята конвенція mtime
для модифікації часу
На час створення,
btime
crtime
otime
(не запитуйте, вгадавши "походження").Тож для мене я підбираю mtime
і crtime
мета-дані.
Для даних, що надаються користувачем, я переглядаю те, що представляє поле. Якщо це день народження, я просто кажу user_birthday
.
Що стосується точності, для деяких, здається, підвішують їх на занадто велику точність. Ви можете зберігати свою birthdate
позначку як часову позначку (зрештою, технічно ви робили час доби), але специфікація SQL має відмінність від більш точної до нижчої точності, тому якщо ви використовуєте гідну базу даних, це не повинно бути проблемою. . У самому додатку ви завжди можете усікати, коли потрібно. Тобто я ніколи не пішов би birthday_date
.
Я б використовував значущий префікс і _TSMP як суфікс, наприклад, CREATION_TSMP або LAST_UPDATE_TSMP
Як пропонує @Evan Carroll, дотримуйтесь існуючих стандартів, якщо у вас немає вагомих причин зламати схему.
Якщо це щось нове, то ви можете слідувати будь-якій відповіді, яка вам найбільше підходить.
Я використовую * _on та * _by, тому що це допомагає мені підтримувати відповідність коли та кому з рядків:
- created_on & created_by
- updated_on & updated_by
- deleted_on & deleted_by -- soft delete
- approved_on & approved_by