问过这个问题就是没答案,但为表谢意,贴子已结,现发贴再问。

yy_zz_yy2 2007-03-13 04:25:32
大家帮我看看,这种情况如何设计表结构?
-------------
需求:对于每名员工,需要每月录入下列数据,只列出一部分,
解职补偿金,福利费,丧葬补助,非货币福利,工会经费,职工教育经费。。。
要将这些数据录入到表中,关键是表的结构我现在定不下来,
一种思路:
将以主各项都建一个专门的字段,如福利费字段,职工教育经费字段等,可是由于企业的需求长有变化,以后每增加项目后,都是增加字段。
这种思路,录入后是下列情况:

姓名,解职补偿金,福利费,非货币福利,
张三,200,100,345
王六,459,788,56
李一,89,234,678

二种思路:
建一个编码表,存各项的编码与名称的对照表,如:
01,解职补偿金
02,福利费
03,丧葬补助
04,非货币福利

这样,录入后,如下所示:(注:姓名列应为编号,我是为了说明问题才这样写的)
姓名,项目编码,金额
张三,01,900
张三,02,78
张三,03,78
王六,01,783
王六,02,783,
王六,03,23

这种设计思路,适用性好,以后再有新的项目时,不用改表结构。
但是数据多时,效率不好,写汇总时,语句也复杂。
如果把每个工资项目设计成字段,则今后如果需求发生变化时,就要改结构。一般改结构的动作都比较大呀。
如果以第二种方式体现,符合范式要求了。可是您想想,如果每名员工有20个工资项目,那么每月这个员工的工资记录就是20多条呀。
而用第一种思路,员工的工资记录就只有一条,
所以我不知改如何设计了。
thanks



...全文
154 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yy_zz_yy2 2007-03-13
  • 打赏
  • 举报
回复
用第一种吧

第二种同样会有时会有第一种时的困难
如绑到dbgrid,还有打印工资条
都要动态加 列
============
谢谢。可是第一种确实不合范式呀,有没有谁做过工资管理系统呀。
giftzheng 2007-03-13
  • 打赏
  • 举报
回复
用第一种吧

第二种同样会有时会有第一种时的困难
如绑到dbgrid,还有打印工资条
都要动态加 列

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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