带有EMP_ID和大量时间戳的mySQL表

时间:2015-07-07 09:28:52

标签: mysql sql database

我是关系数据库和mySQL的新手,我正在尝试为员工开发一个数据库,它会记录员工访问系统的所有时间(通过记录每次访问系统时的时间戳来显示)。 / p>

因此,当员工访问系统时,会记录当前的timeStamp,并在下次访问时记录当前时间戳。我的想法是,我可以回去查询员工每天访问系统的次数,或者查询任何员工的一周等等。

到目前为止,我有:

EMP_ID | F_Name | L_Name | TimeStamp
-------------------------------------
1222   |  joe   |  blogs |  12.03.22
1222   |  joe   |  blogs |  12.44.34
1352   |  carl  |  mansy |  19.33.22

依此类推,我想知道是否有办法让一个emp_id显示下面的所有时间戳,或者我是否需要另一个表?或者我可以像这样拥有数据库吗?

显然这会大大增加,所以为每个emp_id设置一个表会更好吗?

先谢谢Jonny

4 个答案:

答案 0 :(得分:1)

你应该有2张桌子 第一个是员工表

emplyee :   EMP_ID | F_Name | L_Name 

第二个是日志表

employee_log : EMP_ID | TimeStamp

第一个表将存储empolyee的数据 第二个将只存储该员工的日志

如果你想要检索日志,你​​只需要加入这些表格

select * from employee 
left join  employee_log on employee.EMP_ID  = employee_log.EMP_ID

答案 1 :(得分:1)

您应该有2个表用于存储员工数据,另一个用于存储 日志数据

employee :   EMP_ID | F_Name | L_Name 

employee_log : EMP_ID | TimeStamp

答案 2 :(得分:0)

假设所有数据都存储在名为my_log_table的表中,要查看EMP_ID 12222的所有时间戳,请查询它

select TimeStamp from my_log_table where EMP_ID = 12222

将所有日志放在同一个表中是可扩展的,更易于使用。

有多个日志表的问题:

  • 对于每个新用户,您必须手动创建新表
  • 必须授予此脚本/用户权限才能查询新脚本 为新用户创建的表格
  • 如果EMP_ID发生变化,则必须跟踪和更改表名

此外,您不会保存除EMP_ID的一列以外的任何空间    合并日志表

答案 3 :(得分:0)

我希望如果你保持下面的表格会更好。

EMP_ID |时间戳

1222 | 22年3月12日 1222 | 12.44.34 1352 | 19.33.22

因此,在检索时,您可以显示为如下所示的交叉表

1222 | 1352 |

12.03.22 | 19.33.22
12.44.34 |