2013-08-20 58 views
0

當我想獲得最新的記錄時,通過ID而不是日期字段進行訂購是否是一個好主意?它應該更快,因爲ID是主鍵,但我會一直獲得最新的記錄嗎?通過ID訂購獲取最新的記錄?

+0

ID可能是主鍵,但您也可以爲其他字段創建索引以確保它們是唯一的。 –

+0

這取決於如何計算'ID'。它是一個身份嗎?它是否總是上升?人們可以插入不是自動計算的ID嗎?基本上,當我們對主鍵不瞭解時,你會問我們 – Lamak

回答

2

如果您通過ID訂購併且您的ID是您的身份欄,則應該沒問題,因爲您將從最新訂購到最早訂購。請記住將結果以DESC順序排列。

1

只要您的ID已經自動遞增,它應該工作得更快,並按正確的順序。

如果不是,添加一個「添加訂單」列,將最早的日期從0開始分配給最新的任何數字的值,該列將來會自動遞增並按此排序,但仍然會更快比按日期排序。

2

取決於最新的人是否比以前的人有更大的ID不是。

這是一個實用主義的這一個,如果你完全控制了什麼是id,並且你準備好接受命中,如果一些未來的改變迫使你改變id(比如從int到string),那麼我就不會這樣做,不要批評你。

如果您對能夠依賴它感到緊張,請將其抽象出來,例如GetItemsInOrder,方法,存儲過程或視圖類型thingy 如果硅神拒絕對您微笑,您可以添加一個Created_Order列,從ID填充它,修改它使用它,然後繼續進行什麼是一個突破性的變化。例如,