2009-09-14 67 views
2

我正在構建Rails應用程序,我希望具有用戶註冊/登錄功能。我還需要在用戶的模型中提供其他字段,例如地址(街道,城市,國家),Facebook信息,Twitter信息,上次登錄時間等。我應該如何設計用戶登錄功能

從設計的角度來看,模型非常輕巧,並且只有用戶名/密碼/電子郵件信息,並將其他字段留給單獨的模型(如「個人資料」),還是將這些內容組合在一起更好?

我關心的主要是表現。

感謝,

回答

1

我會說把它們放在一起。我認爲如果你把這樣的信息分開,你會爲自己創造更多的工作而沒有足夠的收益來證明它的合理性。

如果您正在尋找身份驗證,Authlogic可能是處理身份驗證的最佳插件。它承認你感興趣的一些領域(如上次登錄等)並自動填寫。一個列表在他們的網站上。

1

保持它在同一模型中,它在開始時更簡單,避免過早優化,並且如果真的有必要,您可以隨時引入其他模型。

1

我同意絕對保持它在一個模型。如果你以後需要擴展/從用戶模型中刪除,它會減少你的工作。更重要的是,如果您設計的用戶模型足夠好,您甚至可能不需要額外的「配置文件」模型,因爲用戶的大部分邏輯/描述都包含在原始用戶模型中。然後,您可以簡單地創建Profile或「Accounts」控制器,以顯示您認爲必要的用戶模型的各個部分。首先決定你是否絕對需要一個「Profile」對象並從那裏出發。如果沒有,你仍然可以創建一個,但是需要創建另一個模型來維護。

1

此處推薦的單一模型以及使用Authlogic。夢幻般的圖書館。

1

到目前爲止,我一直使用restful_authentication,只做了一些調整,到目前爲止一直很好,但是我確實需要和Authlogic一起玩。

就其他人的答案而言,我可以看到他們的觀點,簡單性通常是非常有益的,但我不同意外面和外面的正確答案是將所有信息放在用戶模型中。我會考慮一般的應用程序,總共有多少個模型,其中有多少需要地址,例如?直截了當地,我會非常想把這個地址至少改成一個單獨的模型。

我個人認爲,如果你能證明性能提高的話,最好從標準化表開始,然後評估非標準化。記住你可能會頻繁地加載用戶對象,如果你確實實現了高登錄率,那麼臃腫的模型可能成爲改進的來源,這在後面可能比現在更難做。

與大多數情況一樣,這是一種折衷,需要在每種情況下予以解答。我希望不同的見解有一些用處,我想你應該考慮硬幣的另一面,希望有所幫助。

1

對同一模型的另一投票。如果你正在考慮性能,你可能會編寫自己的選擇查詢等等,所以在我看來,你的案例中模型的瘦或胖是無關緊要的。