请教高手一个数据库设计的问题。

iceage1980 2018-05-14 10:55:49
现在正在开发一套员工评分系统。每位员工需要每周给本部门所有员工打分。
根据打分情况 统计平均分以及其他信息。
想请教一下 这里打分情况 这里在数据库怎么设计好呢?
现在在设计的打分表是
打分人字段、打分详情字段、年、周、时间....
。在打分详情字段中存储这样字符串 1:100;2:95;3:80;4:90; 也就是员工代码:员工得分。
前台展示时通过代码将该字符串转化。

但是这样的话 我在取每位员工的得分情况时 就比较麻烦。

请教高手数据库还有没有好的设计方法。
...全文
987 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
iceage1980 2018-05-18
引用 2 楼 sanjuejianke 的回复:
这样: 员工ID, 打分人ID,得分,时间 1, 2, 90 ,2018/05/15 这样的话,无论是获取每个员工的得分明细情况还是打分明细情况都比较方便,然后支持反复打分,多次打分都比较方便。因为只要打分没有截止,那么最好就支持反复修改,这样会比较方便。 但是这样有个问题,即这样设计的话,表里的数据会随员工数而指数级上升,100员工的话,每周就要插入10000条,1000员工就是10万条,以此类推。因此,员工如果太多的话就要考虑分表。 然后,这个表也没有必要保留每周的数据,个人认为保留最新一周的打分情况就可以了。历史数据的话,可以搞一个历史汇总表,搞个定时任务每周末处理汇总一下,表如下: 员工ID,时间,总得分,得分明细 上面得分明细的字段就可以是: 打分人=分数;打分人=分数;打分人=分数; 毕竟历史数据都是固定的,不会修改,也没有必要给每个员工展示上周上上周他给哪些人打了多少分。最多给领导看下每个员工的每周的总得分,月、季、年平均分,再想细看的话再展示一下该员工的周得分明细。打分历史明细真心没有意义。
当时是想这样设计的。就是因为考虑到数据会很多,所以改成了在一个字段中存储打分详情。再通过代码转换拿到数据。 像你说的这样可以 把历史数据处理一下放到历史汇总表内。 这个表只存储本周的打分情况。这样得分明细情况还是打分明细情况就都解决了。
回复
sjjk 2018-05-15
这样: 员工ID, 打分人ID,得分,时间 1, 2, 90 ,2018/05/15 这样的话,无论是获取每个员工的得分明细情况还是打分明细情况都比较方便,然后支持反复打分,多次打分都比较方便。因为只要打分没有截止,那么最好就支持反复修改,这样会比较方便。 但是这样有个问题,即这样设计的话,表里的数据会随员工数而指数级上升,100员工的话,每周就要插入10000条,1000员工就是10万条,以此类推。因此,员工如果太多的话就要考虑分表。 然后,这个表也没有必要保留每周的数据,个人认为保留最新一周的打分情况就可以了。历史数据的话,可以搞一个历史汇总表,搞个定时任务每周末处理汇总一下,表如下: 员工ID,时间,总得分,得分明细 上面得分明细的字段就可以是: 打分人=分数;打分人=分数;打分人=分数; 毕竟历史数据都是固定的,不会修改,也没有必要给每个员工展示上周上上周他给哪些人打了多少分。最多给领导看下每个员工的每周的总得分,月、季、年平均分,再想细看的话再展示一下该员工的周得分明细。打分历史明细真心没有意义。
回复
天行归来 2018-05-15
设计这类业务,涉及2张表 1、员工基本信息:id(记录ID,自增)、uid(员工Id,唯一标识,用于关联员工其他业务表)、clerkCode(工号)、name(姓名).... 2、员工评分表:id(记录ID,自增)、uid(员工Id,可关联员工基本信息)、markUID(评分人uid)、score(得分)、itype(评分类型,0-年、1-月、2-周、...)、markTime(评分时间)... 统计报表结合1、2两张表就可以算得出来
回复
youyiyang 2018-05-15
"在打分详情字段中存储这样字符串 1:100;2:95;3:80;4:90; 也就是员工代码:员工得分" 你要设计这个数据库,那么为什么要这么设计打分详情呢? 你的表就一个ID,一个用户名,一个打分情况,还有其他的字段,这个就是一个最基本的表。 然后你用select语句把对应ID号的打分情况取出,就可以了。 你不知道SQL语句的select吗?
回复
相关推荐
发帖
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2018-05-14 10:55
社区公告
暂无公告