sql - oracle数据库表结构设计

标签 sql database oracle database-design

我有一个需求,就是要保留2000名员工出勤的数据。

那么考勤表也要有设计?

一年中每天365列,2000条预置记录

我会通过java程序每天更新

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

或者有什么更好的方法吗?

最佳答案

我觉得你想多了。假设您已经有一个包含员工详细信息的员工表,您真正需要的是另一个包含员工 ID 和日期(如果您关心的话,可能还有进出时间)的表,其中一行的存在表示当天出席,如果没有则表示没有出席。然后,您可以通过 left joining 在员工表上找到缺勤天数。

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

关于sql - oracle数据库表结构设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37225018/

相关文章:

oracle - PL/SQL 局部变量转储

node.js - 错误: Transaction rejected with non-error: undefined

sql - 如何使用 sql server 在特定列上获得不同的插入顺序?

sql - 我可以在 ASP.net MVC 中使用纯 SQL 吗?

MySQL - 为一个简单的游戏设计数据库

java - 在 Oracle DB 表中存储字符串

sql - SQL vs LINQ性能

sql - 获取表详细信息

sql - 如何在垂直设计的表格上实现搜索?

database - 函数依赖的最小覆盖