【发布时间】:2016-09-10 12:53:20
【问题描述】:
我有个需求,就是要保存2000名员工的考勤数据。
那么考勤表应该有设计吗?
一年中每天365列,预插入2000条记录
我会每天通过java程序更新它
或
5 列 2000 条记录每天插入 365 天?
或者有没有更好的方法?
【问题讨论】:
标签: sql database oracle database-design
我有个需求,就是要保存2000名员工的考勤数据。
那么考勤表应该有设计吗?
一年中每天365列,预插入2000条记录
我会每天通过java程序更新它
或
5 列 2000 条记录每天插入 365 天?
或者有没有更好的方法?
【问题讨论】:
标签: sql database oracle database-design
我觉得你想多了。假设您已经有一个包含员工详细信息的员工表,那么您真正需要的只是另一个包含员工 ID 和日期(如果您关心的话,可能还有进出时间)的表,其中一行的存在表示该日期的出勤率,如果没有,则表示没有出勤率。然后,您可以通过在员工表上左加入来查找此缺勤天数。
CREATE TABLE employee (
id NUMBER PRIMARY KEY,
-- other details...
);
CREATE TABLE attendance (
employee_id NOT NULL REFERENCES employee(id),
attendance_date DATE NOT NULL,
PRIMARY_KEY(employee_id, attendance_date)
);
【讨论】: