我寫on Rails應用程序的紅寶石,這將有2種不同的用戶類型(假設賣家和買家)。我使用devise gem來處理認證。Ruby on Rails的 - 2種用戶類型
我不想使用單表繼承有三個原因:
1)我不想在我的用戶表中有很多列(我必須爲賣家和買家都存儲字段一個表,他們將有很多不同的Fileds的)
2)我不想有很多空值的在我的數據庫
3)保持賣家和買家分開,將有助於提高性能速度
我決定爲賣家和買家創建2個獨立的模型(併爲他們每個人創建設計)。長話短說 - 它造成了一些麻煩(即處理與單一形式的登錄困難,使用簡單的東西,如「私人消息」,保持我的代碼DRY等多形性關聯),
因此,這裏是問題:
你是否認爲這將是創建一個模型(用戶)提供一些常見的領域很容易地處理與色器件身份驗證,然後有不同的模型(買方和賣方)與belongs_to的和HAS_ONE協會來存儲更多信息好主意。類似這樣的:
class User < ActiveRecord::Base
has_one :seller
has_one :buyer
end
class Seller < ActiveRecord::Base
belongs_to :user, :conditions => "user_type= 'seller'"
end
class Buyer < ActiveRecord::Base
belongs_to :user, :conditions => "user_type= 'buyer'"
end
這是一個很好的解決方案嗎?或者你認爲單表繼承會是一個更好的主意嗎?
什麼麻煩/困難,它可能會導致?
顯示每個用戶的個人資料頁面的路線是什麼?我想有這樣的事情website.com/sellers/id和website.com/buyers/id
如果你能想到我的問題更好的解決方案 - 請讓我知道。
同一個用戶可能重複[Rails - 2種用戶類型的應用程序設計](http://stackoverflow.com/questions/9517406/rails-application-design-for-2-user-types)。 – 2012-03-08 23:15:11