哪种表格设计最适合存储性能评估?

时间:2013-06-29 05:29:24

标签: mysql

我想创建一个表来存储员工绩效评估。

我像这样创建表

id | employee| jobknowledge | Technical Skill  | Quality_work  |
1  | 1       |    4         |   3              |  4            |

或者我也是另一种设计

id   | employee   | skilltype     |mark  |
1         1       | jobknowledge  |  4   |
2    |    1       | Technical_Skill| 3   |

这只是一种样本技能类型。技能类型超过20,这是最好的设计

2 个答案:

答案 0 :(得分:1)

您可以做的是为技能和工作知识查找表创建其他表格,如下所示

技能和员工查表。

id | employee| skill        |
---|---------|--------------|
1  | 1       |    4         |
2  | 1       |    5         |
3  | 1       |    2         |

和工作知识相同

id | employee| JobKnow.     |
---|---------|--------------|
1  | 1       |    4         |
2  | 1       |    2         |
3  | 1       |    10        |

所以将来你很容易查询,这样你也可以保持规范化。

答案 1 :(得分:1)

第二种选择它更好。因为当你尝试这个时,你会受益:

  • 至少属性列
  • 你可以申请Skill的继承类。

你可以创建文件skill_type.rb:

class SkillType < Employee
  def self.foo
    puts "foo"
  end
end

创建child job_knowledge.rb

class JobKnowledge < SkillType
  def self.bar
    puts "#{self.foo}"
  end
end