我想知道是否可以为员工提供主表和明细表?
根据要求,数据可以按部门按国家和员工代码在报告级别进行过滤。
如果员工的部门或国家代码发生更改,则更改将进入明细表,旧记录将设置为 IS_ACTIVE = 'T'。
---------------------主表---------------------------- ------------
**EMPLOYEE_CODE** VARCHAR2(20 BYTE) NOT NULL,
EMAIL VARCHAR2(100 BYTE)
FIRST_NAME VARCHAR2(50 BYTE)
LAST_NAME VARCHAR2(50 BYTE)
WORKING_HOURS NUMBER
---------------------明细表---------------------------- ------------
**PK_USER_DETAIL_ID** NUMBER,
FK_EMPLOYEE_CODE VARCHAR2(20 BYTE),
FK_GROUP NUMBER,
FK_DEPARTMENT_CODE NUMBER,
FK_EMPLOYER_COUNTRY_CODE VARCHAR2(5 BYTE),
FK_MANAGER_ID VARCHAR2(20 BYTE),
FK_ROLE_CODE VARCHAR2(6 BYTE),
START_DATE DATE,
END_DATE DATE,
IS_ACTIVE VARCHAR2(1 BYTE),
INACTIVE_DATE DATE
员工表将与时间表表链接,对于时间表报告,数据可以按部门、国家和员工代码进行过滤。
选项:我
- 拥有一个具有一个主键的员工表,并在为员工更新部门或角色时创建一个新条目。
- 在时间表表中添加国家和部门代码。
--> 这样我就不需要搜索员工表了。
选项:二
- 有主表和明细表。
- 在时间表表中添加国家和部门代码。
--> 这样我就不需要搜索员工表,而且我会有主从表
选项:新
- 有主表和明细表。
- 时间表表将有 EmpCode。
- 如果用户移动到新位置或更改部门,则在明细表中插入一个新行,其中包含新的部门代码和相同的员工编号。
- 更新旧行并设置结束日期字段,因此如果他更改他的位置或部门,则需要更新结束日期字段。
哪一个是最好的选择,还有其他更好的选择吗?