1

我有麻烦需要您的帮助:有 1 个模型员工具有 1 个属性“employee_type”。一名员工只有一种类型。员工有 3 种类型(“初学者”、“普通”、“专业”,未来可能会增加)。所以我认为有3种方法可以实现它。

  1. employee_type 属性是字符串类型,它是“beginner”,或“normal”,或“pro”。然后在助手中,我需要在选择框视图中定义显示 3 类型的方法。这样,缺点是“每当我想添加更多类型时,我必须插入原始代码”
  2. 创建只有 3 条记录“beginner”、“normal”、“pro”的employee_type 表。而employee_type属性为整型,保存employee_type表记录的id。employee 表和employee_type 表没有任何关联。用这种方式,优点是容易插入更多类型。缺点是“如果我想查找员工类型,我必须运行 EmployeeType.find(employee.employee_type)”
  3. 创建employee_type 表,它与employee 有1-1 关系并使用has_one。通过这种方式,优势很容易通过employee.employee_type 找到员工类型。缺点是很难管理多少类型的员工

还有比他们更好的方法吗?

非常感谢

4

1 回答 1

2

这是一对多的情况。您必须使用以下方案:

class Employee < ...
  belongs_to :employee_type

class EmployeeType < ...
  has_many :employees
于 2012-04-12T10:26:38.463 回答