多雇主到员工管理

时间:2018-06-30 08:59:42

标签: jquery mysql sql innodb

希望您做的很好。我面临多个雇主对雇员的问题。

我在想什么:

雇主表

employerID,
fname,
lname,
created_at

员工表

 employeeID
    fname
    lname
    creted_at

这是基本表的结构,然后在我创建了用于多雇主与雇员之间关系的单独表之后。

employer2员工表

employer_id,
employee_id

工资表

salaryID,
salaryAmount,
salaryDate

现在,我面临工资记录问题。在这里应该首选哪个ID? 我想为每位雇员,雇主明智地获得薪水。请帮我。感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您可以这样做, Table_Employee :: EmployeeId | FName |名称|创建日期| FkSuperEmployeeId

FkSuperEmployeeId将从同一张表中获取员工ID

Table_Salary :: SalaryId |薪金金额| SalaryDate

现在您可以在Table_Employee表中设置FkSalaryId,如果可能的话,您可以在Table_Employee表中设置SalaryAmount和SalaryDate。

因此,通过这种方式,您将能够轻松处理它。

答案 1 :(得分:0)

首先,您可以避免使用3个表来存储雇主和雇员的关系信息。

而不是3个表,仅使用1个雇员表,并且只有一个新列,该列将针对另一个雇员和eployeeID存储雇员ID,即新列中的特定雇员ID是此雇员的雇主(也是雇员)雇员。

示例-

enter image description here

因此,雇员1没有任何雇主,因为Employee_EmployerID为0。而雇员2有一个雇主,即雇员1。

在这种情况下,您可以在薪金表中添加 employeeID 。而且,通过在employee表中进行自我联接,您可以获取所需的信息。

注意::我建议不要在Employee表中添加 SalaryID ,因为employee表是主表,因此在其中包含 salaryID 如果您与某些外部用户共享员工表,则员工表可能会在以后导致安全问题。

SELECT E1.FName [EmployeeName], E2.FName [EmployerName], S.SalaryAmount
FROM EmployeeTable E1 
    LEFT OUTER JOIN EmployeeTable E2 ON E1.EmployeeID = E2.Employee_EmployerID
    INNER JOIN SalaryTable S ON S.EmployeeID = E1.EmployeeID

但是,如果您希望保持结构与3个表保持一致,则可以将 SalaryID 添加到loyal2employee表中,或添加 employeeID 仅在您的薪资表中。 :)

在两种情况下,提取时仅会更改表的连接样式。