设计考勤表~求指点

rankx 2011-10-25 04:24:30
Attendance--表名
Attdate Date 日期 Not null
empID Number 员工编号 Not null
ifAttd Char(1) 是否出勤 Not null
attdDay number 当月出勤天数 not null
我感觉这样设计不妥,(字段(attdDay)是我后面加上的)我脑子了呈现出别的思路就是累加可我不知道怎么实现(貌似ifAttd可以不要)如何让出勤天数累加.根据当月天数.
...全文
87 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BenChiM888 2011-10-25
  • 打赏
  • 举报
回复
触发器+自治事务

考勤表有记录插入,触发记录事件。
到底记不记录,看考勤记录,如果考勤记录为0 则+1 否则不加。

再有问题就用你自己的那个吧。
rankx 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 benchim888 的回复:]

判断方法很多,随便说一个,看你的考勤表,一天只对第一条记录+1,其余记录不考虑.

另外到底加没加 你看看你的考勤表算一下不就知道了。
[/Quote]

我想说怎么让它一天只能加一次!
BenChiM888 2011-10-25
  • 打赏
  • 举报
回复
判断方法很多,随便说一个,看你的考勤表,一天只对第一条记录+1,其余记录不考虑.

另外到底加没加 你看看你的考勤表算一下不就知道了。
rankx 2011-10-25
  • 打赏
  • 举报
回复
update tablename set fieldname = fieldname+1
每天只能操作一次以上sql语句
rankx 2011-10-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 benchim888 的回复:]

Attendance--表名
Attdate Date 日期 Not null
empID Number 员工编号 Not null
ifAttd Char(1) 是否出勤 Not null
够用了。

当月出勤天数,最后用sql统计。
你这么设计的话,每产生一条出勤记录就要更新一下,这个员工当月的所有出勤记录的数据,明显是不符合范式规则的。

如果你非得这么干,再加个表
A……
[/Quote]

我不想这么干~~~
可不可以不要表Attendance、

但用你给的改进版
Attdate只记录当月月份,attdDay累加当月出勤天数
怎么判断今天是否已经attdDay+1
BenChiM888 2011-10-25
  • 打赏
  • 举报
回复
Attendance--表名
Attdate Date 日期 Not null
empID Number 员工编号 Not null
ifAttd Char(1) 是否出勤 Not null
够用了。

当月出勤天数,最后用sql统计。
你这么设计的话,每产生一条出勤记录就要更新一下,这个员工当月的所有出勤记录的数据,明显是不符合范式规则的。

如果你非得这么干,再加个表
Attdate Date 日期 Not null --只保留月份
empID Number 员工编号 Not null
attdDay number 当月出勤天数 not null

每登陆一次更新一下这个表。
这样设计还说的过去。

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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