我有一個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