oracle数据库中表结构的设计

时间:2016-05-14 09:33:08

标签: sql database oracle database-design

我有一项要求是保留2000名员工的数据。

所以出勤表应该有设计吗?

一年中每天365列,2000年预插入记录

我将每天通过java程序更新它

5列2000记录每天插入365天?

或者有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

我认为你过分思考问题。假设您已经有一个员工表,其中包含员工的详细信息,您真正需要的是另一张表,其中包含员工的ID和日期(如果您关心它,可能还有入口和出口时间),其中有一行表示出席该日期,缺乏if表示缺乏出席率。然后,您可以通过左侧加入员工表来查找此缺勤日期。

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)
);