2012-09-30 57 views
0

我有一個rails應用程序鏈接到一個數據庫表,其中包含電子郵件地址和密碼。我想創建一個唯一的號碼來識別系統中的每個用戶。該號碼將在註冊時提供給用戶,並存儲在同一個表的字段user_id中。 因此,例如,[email protected]可以獲得0001作爲ID,[email protected]可以獲得0002,依此類推。 我的問題是:做這件事的最好方法是什麼? 我應該使用第一個user_id(0001)爲數據庫創建數據庫(rake db:seed),並在控制器中寫入一個方法來每次爲user_id +1。如果是這種情況,我如何訪問最後一行以找出最後一個user_id?在rails數據庫中使用user_id的三種方法,哪一種最好?

另一種方法是找到表中最大的user_id併爲其+1。爲此,我想我需要使用tablename.find_by_user_id或類似的東西(將tablename.find_by_user_id.max工作嗎?)

第三種方法是將最新的user_id存儲在某個地方,並讓應用程序在需要時進行修改。這些信息可以存儲在哪裏?

我對軌道很陌生。希望您能反饋哪些是最好的方法。

感謝, TimmyOnRails

+1

使用自動增量主鍵有什麼問題? –

回答

3

讓我們假設你的模型有兩個屬性的姓名和電子郵件。現在,在默認情況下軌將產生三個多列你

1號 - 自動增量

2 created_at和的updated_at - 時間戳

耙分貝:種子是如果你想預填充很好的解決方案之一數據庫。所有你需要擔心的是名字和電子郵件。爲這些屬性添加適當的驗證。靜止軌道將處理ie id由軌道本身維護。你不需要擔心它。 Created_at和updated_at列也由rails維護。

如果新軌道,然後我會建議你檢查http://railsforzombies.com,這將你有關的活動記錄

Railsguides和RailsCasts也是軌其他兩個學習資料是個好主意。

+0

感謝您的幫助,我會檢查這些網站。我已經知道RailsCasts。那麼,從數據庫的角度來看,'id'字段是主鍵?我可以使用它在多個表中唯一標識系統中的每個用戶嗎? – TimmyOnRails

+0

對不起,我剛查過,看起來'id'字段是主鍵。 – TimmyOnRails

+0

是id默認主鍵默認 –