求助最佳方案

northwolves 2004-03-22 11:31:46
5个专家考查来自某系统10个部门的100 多名人员的工作能力,分4大方面,每个方面有5个小方面进行评价,分为优,良,差 三个级别,要求能按系统,按部门,按人员,按大方面,按小方面进行评价,数据结构如何设计最佳?
...全文
61 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2004-04-04
  • 打赏
  • 举报
回复
问题解决,谢谢大家。对本帖及http://expert.csdn.net/Expert/topic/2873/2873457.xml?temp=.7616541所得分数有什么意见请发短信给我。
yijiansong 2004-03-24
  • 打赏
  • 举报
回复
用面向对象的方法设计一下表结构
fanzai 2004-03-24
  • 打赏
  • 举报
回复
呵呵,感觉好像已经没什么问题了。不过有个地方你估计错了。

*那就10000多条记录:
*人员ID (+ 部门ID )+ 评判项目ID(小方面)+ 评判结果(3,2,0)
这里仍然是2000条记录。为什么?仔细想想:)

fanzai 2004-03-24
  • 打赏
  • 举报
回复
^O^
原来你是要每个员工的每个小方面都由5个专家分别评判啊?
这样的话,多表操作就更有优势了!^_^
否则单表需要 员工ID +(20小方面) X (5个专家)=100 个字段,这就不太妥当了~~~
zhouyonglijun 2004-03-24
  • 打赏
  • 举报
回复
呵呵
northwolves 2004-03-24
  • 打赏
  • 举报
回复
呵呵, to fanzai(帆仔) :

(100人) X (20小方面) X (5个专家)=10000
RUKYO 2004-03-24
  • 打赏
  • 举报
回复
Mark
fanzai 2004-03-23
  • 打赏
  • 举报
回复
部门表:(编号 名称 ……) 10条
员工表:(编号 姓名 部门 ……) 100条
专家表:(编号 姓名 ……) 5条
大方面:(编号 名称 ……) 4条
小方面:(编号 所属大方面 名称 ……)4*5=20条
评判表:(序号 评判项目(小方面) 员工编号 专家编号 评判结果 ……)100*20=2000条
华芸智森 2004-03-23
  • 打赏
  • 举报
回复
给出一个数据库的大体设计方案..仅供参考
华芸智森 2004-03-23
  • 打赏
  • 举报
回复
5个专家考查来自某系统10个部门的100 多名人员的工作能力,分4大方面,每个方面有5个小方面进行评价,分为优,良,差 三个级别,要求能按系统,按部门,按人员,按大方面,按小方面进行评价,数据结构如何设计最佳?

'---------------------------------------------------------------
数据表分为:部门资料,员工资料,等级资料,专家资料.员工等级(凡主键皆不能为NULL)

1. 部门资料(AchDep)

主键 含义 名称 类型 空否 索引 外键 缺省值 初值 备注
Y 所属编号 ParDepID VarChar(32)
Y 部门编号 DepID Varchar (32)
部门名称 DepName Varchar (32)
负责人 EmpID Varchar (32)
职能 Function Varchar (255)
备注 Remark Text

2.员工资料数据字典 (AchEmployee)

主键 含义 名称 类型 空否 索引 外键 缺省值 初值 备注
Y 员工编号 EmpID Varchar (32)
员工名称 EmpName Varchar (64)
联系电话 LinkTel Varchar (32)
性别 Sex Varchar (2) 缺省-女, 1-女,2-男
手机传呼 Tel Varchar (32)
出生日期 Birthday DateTime
到职日 EmpDate DateTime
离职日 DimiDate DateTime
.................. 省略

3.等级资料(Achgrade)
主键 含义 名称 类型 空否 索引 外键 缺省值 初值 备注
Y 等级编号 GraID Varchar (32)
等级名称 GraName Varchar (64)

4.专家资料(AchMavin)
主键 含义 名称 类型 空否 索引 外键 缺省值 初值 备注
y 专家编号 MavID Varchar (32)
专家名称 MavName Varchar (64)

5.员工等级(DepGrade)
主键 含义 名称 类型 空否 索引 外键 缺省值 初值 备注
y 员工编号 EmpID Varchar (32)
y 专家编号 MavID Varchar (32)
等级编号 GraID Varchar (32)
flyingscv 2004-03-23
  • 打赏
  • 举报
回复
晕,发了两次都不成功
pandengzhe 2004-03-23
  • 打赏
  • 举报
回复
5*100*4*5*3=30000条记录

这个表不能缺吧,如果速度慢也可以拆开,其他的就无所谓了,对吧?
flyingscv 2004-03-23
  • 打赏
  • 举报
回复
一张表有什么弊端吗
就是将
10个部门的100 多名人员的工作能力,分4大方面,每个方面有5个小方面进行评价,分为优,良,差 三个级别
这些数据都放一张表

应该很方便啊?
我对数据库没什么了解,大侠多多指教

northwolves 2004-03-23
  • 打赏
  • 举报
回复
初步设计如下,请大家指教:

部门资料表:

部门编号 ,部门名称,拼音缩写


员工资料表:

编号,姓名,拼音缩写,部门,性别,民族,出生日期,参加工作日期,籍贯,学历,技术职称,行政职务,联系方式

评判项目表:

评判项目小方面ID(A1A2A3A4A5),评判项目小方面名称,评判项目大方面ID(ABCD),评判项目大方面名称


考查结果表:

人员ID (+ 部门ID )+ (小方面)+ 评判结果(3,2,0)

专家资料不是必须的,因为是不记名考评,感谢 大家的建议。可能还有新的问题,月底结贴。
northwolves 2004-03-23
  • 打赏
  • 举报
回复
那就10000多条记录:

人员ID (+ 部门ID )+ 评判项目ID(小方面)+ 评判结果(3,2,0)


注:评判结果(3,2,0) 可以使总分数为100分。

多谢!!!!!我试试。
yoki 2004-03-23
  • 打赏
  • 举报
回复
建议转到sqlserver数据库开发版
fanzai 2004-03-23
  • 打赏
  • 举报
回复
*部门表,员工表,专家表,大方面,小方面的设计很简单,但评判结果表如何设计?
::评判表:(序号 评判项目(小方面) 员工编号 专家编号 评判结果 ……)100*20=2000条
其中评判结果为整型或者枚举行,可以设置为1、2、3三种可能的值,分别代表差、良、优。
我感觉这样要比设置成3个bool要易于操作,因为优良差本身就是一个事情的三种状态,设置成一个字段的三个值更贴近实际、易于操作、方便

扩展。

*员工ID + 60 个字段? 这样效率怎样(共700 余条记录)?
这样设计效率应该没什么问题,而且估计在大多数的情况下比我上面提到的拆成多个表还要高效。但是恐怕这样在某些特定的要求下就要显得

难于操作,尤其是可扩展性不强。
举个例子:要求统计所有员工各大方面的平均成绩。
1、员工ID + 60 个字段:
循环对每个员工操作
{
大方面1成绩=(小方面1成绩+小方面2成绩+小方面3成绩+小方面4成绩+小方面5成绩)/5
大方面2成绩=……
大方面3成绩=……
……
}
2、多个表操作:
只需几个嵌套循环,无论有多少大方面、多少小方面,只要增加循环次数都可以轻松实现。

*另外还要求能够统计任意部门或员工的优的方面和差的方面。
按照我上面给出的表结构,各类统计大体上都在最后一个“评判表”里面进行,只有部分需要调用其它表。
举例:
1、查询所有小方面2被评为优的员工
select 评判表 where 评判项目=小方面2 and 评判结果=优
如果需要同时得到每个员工的更多信息,可以进行联合查询或者依据评判表中的员工编号再次到员工表查询

2、查询部门1内所有小方面2被评为优的员工
这个要用联合查询,大体思路就是将员工表和评判表结合在一起,查询 部门=部门1 and 评判项目=小方面2 and 评判结果=优 的项
由于不同数据库联合查需方法不尽相同,我就不给出具体语句了。
当然,这样的效率并不如 员工ID + 60 个字段 高。如果需要,你可以在评判表里面加上“所属部门”字段,那样效率自然就不亚于 员工ID +

60 个字段 了。

总之,采用哪种方式还要看你更多的进行哪些操作:)
sogno 2004-03-23
  • 打赏
  • 举报
回复
以前做过一个大概类似的东西,也是用来量化评估人员的工作能力

当时用了一点多维数据库的东西,按照星型和雪花型结构来设计数据库,后端用SQL Server Analysis Service处理,前端使用Office Web Component,大部分报表基本上可以通过前端工具就能够定制出来。

victorycyz 2004-03-23
  • 打赏
  • 举报
回复

一张表的想法不可取。不能因为数据量小,就做成这么粗糙。
  • 打赏
  • 举报
回复
学学

up
加载更多回复(12)

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧