希望您做的很好。我面临多个雇主对雇员的问题。
我在想什么:
employerID,
fname,
lname,
created_at
employeeID
fname
lname
creted_at
这是基本表的结构,然后在我创建了用于多雇主与雇员之间关系的单独表之后。
employer_id,
employee_id
salaryID,
salaryAmount,
salaryDate
现在,我面临工资记录问题。在这里应该首选哪个ID? 我想为每位雇员,雇主明智地获得薪水。请帮我。感谢您的帮助。
答案 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是此雇员的雇主(也是雇员)雇员。
示例-
因此,雇员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 仅在您的薪资表中。 :)
在两种情况下,提取时仅会更改表的连接样式。