AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 2677
Accepted
garik
garik
Asked: 2011-05-13 04:29:59 +0800 CST2011-05-13 04:29:59 +0800 CST 2011-05-13 04:29:59 +0800 CST

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

  • 772

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

naming-convention
  • 13 13 个回答
  • 66466 Views

13 个回答

  • Voted
  1. Best Answer
    Leigh Riffel
    2011-05-13T07:52:13+08:002011-05-13T07:52:13+08:00

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

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

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

    • 58
  2. Jack Douglas
    2011-05-13T08:48:07+08:002011-05-13T08:48:07+08:00

    xyz_at对于一个timestamp和xyz_on一个字段怎么样date- 例如start_ator start_on?

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

    • 40
  3. David LeBauer
    2011-05-13T21:17:49+08:002011-05-13T21:17:49+08:00

    我用:

    • created_at
    • 更新时间
    • 29
  4. Artur INTECH
    2017-02-08T05:13:36+08:002017-02-08T05:13:36+08:00

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

    • 6
  5. Sankar Reddy
    2011-05-13T08:31:20+08:002011-05-13T08:31:20+08:00

    我查看了您的个人资料,它说您使用 SQL Server,并且在 SQL Server 中,TIMESTAMP 数据类型与日期或时间无关,它习惯于对行进行标记。这对于识别从给定时间点修改了哪些行非常有用。

    如果您使用 TIMESTAMP,那么您不必指定列名,SQL Server 将为您创建一个列“TimeStamp”。但建议使用“ROWVERSION”数据类型,在这种情况下,您必须指定列名。

    像这样的列的最佳名称是什么?这取决于,我会使用诸如 VersionStamp、RV 等之类的东西……我认为重要的不是你如何命名它,而是你是否始终如一地使用它。

    高温高压

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

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

    • 5
  6. Traycho Ivanov
    2020-07-26T05:36:41+08:002020-07-26T05:36:41+08:00

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

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

    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
    
    

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

    • 生日
    • realase_date
    • 营业日

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

    • 4
  7. Evan Carroll
    2017-06-03T06:40:39+08:002017-06-03T06:40:39+08:00

    我更喜欢使用已经存在的约定。

    Unix 和编程语言具有广泛接受的mtime修改时间约定

    对于创作时间,

    • BSD 和 Windows 使用生日
    • Windows 也使用创建时间
    • xstat 使用btime
    • ext4 使用crtime
    • JFS 和 btrfs 使用otime(不要问,猜测“起源”)。

    所以对我来说,我选择mtime和crtime元数据。

    对于用户提供的数据,我选择该字段所代表的内容。如果是生日,我就说user_birthday。

    就精度而言,对于某些人来说,似乎过于精确了。您可以将您的时间戳存储birthdate为时间戳(毕竟从技术上讲,您是在一天中的某个时间出生的),但是 SQL 规范已从高精度转换为低精度,因此如果您使用的是体面的数据库,这应该不是问题. 在您的应用程序本身中,您始终可以在需要时截断。也就是说,我永远不会去birthday_date。

    • 3
  8. Michael Riley - AKA Gunny
    2011-05-13T07:54:18+08:002011-05-13T07:54:18+08:00

    我更喜欢使用 DT 前缀作为日期戳。例如:DTOpened、DTClosed、DTLastAccessed。这让我可以列出所有 DTxxxx,以便快速参考给定表中的所有日期戳。

    • 2
  9. Barry McQuery
    2013-10-14T00:48:31+08:002013-10-14T00:48:31+08:00

    我在德州仪器工作,他们在他们的系统上使用 xxxx_ dttm

    • 2
  10. Andreas
    2018-10-22T16:51:01+08:002018-10-22T16:51:01+08:00

    为了保持列名的一致性,我建议您使用以下语法:

    dateCreated
    dateUpdated
    dateAccessed
    dateStarted
    date...
    
    • 2

相关问题

  • 命名表和视图时应该遵循什么标准?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve