我正在与一个想要将时间戳添加到一堆表的客户端一起工作,以便他们可以按时间顺序对这些表中的记录进行排序.所有表都有一个自动递增的整数字段作为其主键(id).
(简单)想法 - 节省开销/存储并依赖主键按时间顺序排序字段.当然这有效,但我不确定这种方法在声音数据库设计中是否可以接受.
优点:每条记录需要的存储空间更少,VO类更简单等.
Con:它意味着该字段的特征,即一个简单的标识符,其定义不以任何方式定义或保证它应该/将如此起作用.
假设为了我的问题,DB表定义是一成不变的.仍然 - 这在最佳实践方面是否可以接受?
谢谢
你要求"最佳实践",而不是"不可怕的做法",所以:不,你不应该依靠自动增加的主键来建立年表.有一天你要引入数据库设计的改变,这将会破坏.我已经看到它发生了.
一个日期时间列,其默认值GETDATE()具有非常小的开销(大约一个整数)和(更好地)告诉您不仅仅是序列而是实际的日期和时间,这通常证明是无价的.即使在列上保持索引也相对便宜.
这些天,我总是将CreateDate列数据对象连接到现实世界事件(例如帐户创建).
编辑添加:
如果精确的时间顺序对您的应用程序至关重要,则不能依赖于自动增量或时间戳(因为无论分辨率有多高,总会有相同的时间戳).你可能不得不做一些特定于应用程序的东西.
| 归档时间: | 
 | 
| 查看次数: | 2935 次 | 
| 最近记录: |