我应该如何最好地命名我的时间戳字段?

gar*_*rik 76 naming-convention

当我想创建一些时间戳字段(或其他日期/时间样式字段)时,命名它们的最佳方法是什么?我应该只放 record_timestamp 吗?

Lei*_*fel 54

您应该描述列的用途,而不一定是数据类型。您可以在名称中包含日期/时间/时间戳,但您还应该包含其含义。例如

  • 创立日期
  • 开始日期
  • 状态时间
  • 已访问
  • 更新

当添加的缺失与另一列冲突时,在最后添加日期/时间/时间戳等特别有用。例如,一个表可能同时需要 Status 和 StatusTime。

  • 我认为“访问”和“更新”可能是模棱两可的,因为它也可以暗示布尔值(至少在 Ruby 世界中) (9认同)
  • 只是为了加上我的两分钱。我使用过许多传统 MRP 系统,发现经常使用 CreatedOnUtc 和 UpdatedOnUtc。 (2认同)
  • @GeovaniMartinez 可能会令人困惑,因为许多 SQL 数据库(包括 PostgreSQL)以 UTC 存储并在客户端的时区中读取。 (2认同)

Jac*_*las 39

怎么样xyz_attimestamp,并xyz_ondate现场-如start_atstart_on

通常我会避免在字段名称中包含数据类型——如果你能从任何字段的名称中推断出你需要了解的关于类型的信息(一个名为的字段description不太可能是integer),那就更好了——但是能够告诉atimestamp和 a之间的区别date通常很有帮助。


Dav*_*uer 25

我用:

  • created_at
  • 更新时间

  • “开”怎么样。虽然它暗示的日期不仅仅是时间,但它仍然很明显 (4认同)
  • 它仍然可能是模棱两可的。如果您需要知道更新的时间和地点怎么办?`updated_at` 也可以是。但我认为答案是,与命名一样,使用最简洁的名称,消除所有现实的歧义。即,如果在特定上下文中存在某种混淆的可能性,请消除它,但不要使用比所需更冗长的名称 (3认同)
  • “at”也可以表示位置。“何时”而不是“在”呢? (2认同)
  • “at”或“as at”在法律和财务文件中经常使用,指代某事发生的时间。http://english.stackexchange.com/questions/112770/understanding-as-of-as-at-and-as-from (2认同)

San*_*ddy 5

我查看了您的个人资料,它说您使用 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

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


Art*_*jev 5

我发现在方法命名和规范 (RSpec) 方面,使用诸如create_time,update_time和 之类的列名称expire_time可以提高可读性。


Tra*_*nov 5

没有完全正确的方法来做到这一点,唯一重要的是在代码库和数据库之间保持一致,这样开发人员就不会感到困惑。

确切的命名取决于语言约定,但我会选择以下其中一项:

Python, Java, ORACLE/Postgresql

created_at, createdAt, CREATED_AT // Time when the record was created
updated_at, updatedAt, UPDATED_AT // Time when the record was last modified
started_at, startedAt, STARTED_AT // Some other record time

Or

create_time, createTime, CREATE_TIME
update_time, updateTime, UPDATE_TIME
start_time, startTime, START_TIME

Run Code Online (Sandbox Code Playgroud)

几乎所有字段都存储为时间戳,有些字段需要作为日期,但通常它们与业务领域更相关,可以根据即将到来的请求命名

  • 生日
  • 重新设定日期
  • 工作日

所有时间戳字段均以 UTC 格式存储。