Answers:
您应该描述列的用途,而不一定是数据类型。您可以在名称中包括日期/时间/时间戳,但也应包括含义。例如
在末尾添加日期/时间/时间戳等时,如果添加的缺席将与另一列冲突,则特别有用。例如,一个表可能同时需要一个Status和一个StatusTime。
我用:
updated_at
可能是。但是我认为答案是,就像通常使用命名一样,使用最简洁的名称来消除所有现实的歧义。也就是说,如果在特定情况下可能会造成某种混乱,请消除它,但不要使用比要求的更为冗长的名称
我查看了您的配置文件,并说您使用的是SQL Server,在SQL Server中,TIMESTAMP数据类型与日期或时间无关,它用于标记行的版本。这对于识别从给定时间点修改了哪些行非常有用。
如果使用TIMESTAMP,则不必指定列名,SQL Server会为您创建一列“ TimeStamp”。但是建议使用“ ROWVERSION”数据类型,在这种情况下,您必须指定列名。
这样的列的最佳名称是什么?这要看情况,我会使用像VersionStamp,RV之类的东西。我认为重要的不是您的名字,而是您是否一贯地使用它。
高温超导
参考:http : //msdn.microsoft.com/zh-CN/library/ms182776( v= sql.90).aspx
我发现,使用如列名create_time
,update_time
并expire_time
带来更好的可读性,当涉及到方法命名和规格(RSpec的)。
我更喜欢为日期戳使用DT的前缀。例如:DTOpened,DTClosed,DTLastAccessed。这使我可以列出所有DTxxxx,以便快速参考给定表中的所有日期戳。
我更喜欢使用已经存在的约定。
Unix和编程语言具有被广泛接受的mtime
“ 修改时间”约定
为了创造时间,
btime
crtime
otime
(不要问,猜测是“原始”)。因此,对于我来说,我选择mtime
,crtime
对于元数据。
对于用户提供的数据,我会使用该字段表示的内容。如果是生日,我就说user_birthday
。
就精度而言,对于某些人来说,似乎过于精确。您可以将您birthdate
的时间戳记存储为时间戳(毕竟,从技术上来说,您是一天中的某天出生的),但是SQL规范已将精度从较高的精度转换为较低的精度,因此,如果您使用的是体面的数据库,这应该不成问题。在应用本身中,您随时可以在需要时截断。就是说,我永远不会去birthday_date
。
正如@Evan Carroll所建议的那样,请遵循现有标准,除非您有充分的理由打破这种模式。
如果这是新事物,那么您可以按照任何最适合您的答案进行操作。
我使用* _on和* _by是因为它有助于我使行的时间和对象保持一致:
- created_on & created_by
- updated_on & updated_by
- deleted_on & deleted_by -- soft delete
- approved_on & approved_by