Mysql 哪一种是存储性能评估的最佳表设计?

Mysql 哪一种是存储性能评估的最佳表设计?,mysql,Mysql,我想创建一个表来存储员工绩效评估 我创建这样的表 id | employee| jobknowledge | Technical Skill | Quality_work | 1 | 1 | 4 | 3 | 4 | 或者我还有另一个设计 id | employee | skilltype |mark | 1 1 | jobknowledge | 4

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

我创建这样的表

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个技能类型是最佳设计

您可以创建其他技能表和工作知识查询表,如下所示

技能和员工查找表

id | employee| skill        |
---|---------|--------------|
1  | 1       |    4         |
2  | 1       |    5         |
3  | 1       |    2         |
工作知识也是如此

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

因此,在将来,您可以轻松地进行查询,并且通过这样做,您还可以保持规范化。

第二个选项会更好。因为当你尝试这样做时,你会得到好处:

  • 更多最小属性列
  • 您可以应用技能的继承类
您可以创建skill_type.rb文件:

class SkillType < Employee
  def self.foo
    puts "foo"
  end
end
class SkillType
创建子作业\u knowledge.rb

class JobKnowledge < SkillType
  def self.bar
    puts "#{self.foo}"
  end
end
class JobKnowledge
您可以稍微修改一下……为每个工作知识和技术技能创建查找表,因为一名员工可以拥有多个技能……因此我建议您为此创建查找表。