【发布时间】:2011-07-02 10:53:07
【问题描述】:
您好,我的问题类似于:
MySQL: Using DATETIME as primary key
但我对 Sql Server 特别感兴趣,我想在实践中考虑到特定场景来解决这个问题,而不是像另一篇文章中那样从理论上讲。
我想存储用户执行的事件/操作。多个用户在相同的 100 毫秒间隔内执行操作的几率非常低,并且可以接受不频繁的冲突。如果我可以离散地表达 10 毫秒甚至 1 毫秒的间隔,那么我对风险感到非常满意。
因此提出了一个问题,我可以使用 DateTime 作为我的主键而不是唯一标识符吗,因为我会定期查询最近的 100 个事件并按事件发生的时间对事件进行排序。
【问题讨论】:
-
如果您总是按事件时间排序而很少/从不按身份排序,则应将标识符保留在那里,但在 EventTime 列而不是标识符上创建聚集索引。跨度>
标签: sql-server sql-server-2008 database-design