2010-05-04 89 views
0

我有型號Team,並且我有(即)team = Team.first :offset => 20。現在我需要在db表中獲得我的team的位置號碼。物體在數據庫中的位置

我能做到這一點的紅寶石:

Team.all.index team #=> 20 

但我相信,我可以把它寫在SQL,這將是對我很大的表便宜。

回答

1

假設順序是由ID倒序製造:

+1

如果團隊可以從數據庫中刪除,這項工作是否可行? – 2010-05-04 08:50:08

+0

是的。這是好方法!不是很靈活。但對我來說就夠了。 – fl00r 2010-05-04 08:51:27

0

我不確定我是否在跟隨,但是會將位置值用於很多情況,可能值得確保它設置爲保存。一個團隊會隨着時間的推移改變立場還是靜態的?

我不認爲數據庫中記錄的位置是數據庫真正關心的事情之一,這種數據應該由您來設置。

根據數據庫的不同,您可能可以使用LIMIT子句,但不能用它來查找某一行的位置。例如,只需選擇20到21行,但它會因排序順序而異。

SELECT * FROM teams LIMIT 20,21 

我認爲在你的模型上設置一個位置屬性或者有一個連接模型是要走的路。

+0

位置總是變化,因爲刪除和添加數據的,我不希望添加位置的模型。 _vlad.zloteanu_真的提出了很好的解決方案 – fl00r 2010-05-04 08:50:12