2012-04-12 39 views
1

我有麻煩需要你的幫助: 有1個模型員工有1個屬性「employee_type」。一名員工只有一種類型。有三種類型的員工(「初學者」,「正常」,「專業人員」,未來可能增加)。所以我認爲有3種實現方法。欄杆協會有一個

  1. employee_type屬性是字符串類型,它是「初學者」或「正常」或「親」。然後在助手中,我需要在選擇框視圖中爲顯示3類型定義方法。通過這種方式,缺點是「每當我想添加更多類型時,我都必須插入原始代碼」
  2. 創建只有3條記錄「beginner」,「normal」,「pro」的employee_type表。而employee_type屬性是整數類型,它保存了employee_type表記錄的id。員工表和employee_type表沒有任何關聯。以這種方式,優點是很容易插入更多的類型。缺點是「如果我想查找員工類型,我必須運行EmployeeType.find(employee.employee_type)」
  3. 創建employee_type表,它與employee關聯1-1並使用has_one。通過這種方式,通過employee.employee_type很容易找到員工類型。缺點是難以管理多少類員工

有沒有比他們更好的辦法?

非常感謝你

回答

2

這是一對多的情況。您必須使用以下方案:

class Employee < ... 
    belongs_to :employee_type 

class EmployeeType < ... 
    has_many :employees 
+0

這只是一對一的關係。一名員工只有一種類型 – banhbaochay 2012-04-12 10:32:36

+1

第一名員工有一種類型,但一種類型可能與許多員工有關。 – jdoe 2012-04-12 10:36:47

+0

哦,我明白你的想法。所以我需要添加employee_type_id併爲employee_type和employee創建關係1-n。非常感謝你,謝謝 – banhbaochay 2012-04-12 10:48:03