我有一个Rails 2.3.5应用程序,其中包含一个包含id和created_at列的表。该表随着时间的推移记录对实体的状态更改,因此我偶尔会使用它在特定时间查看实体的状态,方法是查找时间之前发生的状态更改,然后根据created_at时间戳选择最新状态。 对于1445个实体中的10个,状态改变的时间戳与ID不同,并且最后状态改变的状态不同于实体自身存储的状态,例如,Rails created_at时间戳顺序不符合id顺序
id | created_at | entity_id | state |
------+---------------------+-----------+-------+
1151 | 2009-01-26 10:27:02 | 219 | 1 |
1152 | 2009-01-26 10:27:11 | 219 | 2 |
1153 | 2009-01-26 10:27:17 | 219 | 4 |
1154 | 2009-01-26 10:26:41 | 219 | 5 |
我也许可以解决这个问题通过订购的ID,而不是时间戳,但想不到的解释,这究竟是怎么回事。该应用使用几个杂种实例,但它们都在同一台机器上(Debian Lenny);我错过了明显的东西吗? DB是Postgres。
感谢您的回答;我仍然对这种情况如何发生感到困惑 - 我的意思是1154的时间戳比其他时间早了21秒,但是它的ID和实体的当前状态(5)表明它们是序列中的最后一个。 – Leo 2011-05-04 16:25:41
@Leo你对此有一个很好的解释吗? “1154”真的是最后的顺序? – 2015-05-16 17:42:19