希望你做得很好。我正面临着多个雇主对雇员的问题。
我在想什么:
雇主表
employerID,
fname,
lname,
created_atemployee表
employeeID
fname
lname
creted_at这是基本表的结构,然后在我为多个雇主到雇员的关系创建了单独的表。
employer2employee表
employer_id,
employee_id薪资表
salaryID,
salaryAmount,
salaryDate现在我面临着工资记录的问题。在这里应该优先选择哪个ID?我希望每个员工都能拿到工资,雇主是明智的。请帮帮我。谢谢你的帮助。
发布于 2018-06-30 17:10:38
您可以这样做,Table_Employee ::EmployeeId | FName | LName | CreatedDate | FkSuperEmployeeId
在这里,FkSuperEmployeeId将从同一个表中获取员工Id
Table_Salary ::SalaryId | SalaryAmount | SalaryDate
现在,您可以在Table_Employee表中设置FkSalaryId,如果可能,还可以在Table_Employee中设置SalaryAmount和SalaryDate。
因此,通过这种方式,您将能够轻松地处理它。
发布于 2018-06-30 20:59:09
首先,您可以避免使用3个表来存储雇主和员工关系信息。
代替3个表,只使用1个employee表,并且只有一个新列,它将存储针对其他employee和eployeeID的employeeID,即新列中的特定employeeID是此employee的雇主(也是employee)。
示例-

因此,Employee 1没有任何雇主,因为Employee_EmployerID为0。而Employee 2有一个雇主,即employee 1。
在这种情况下,您可以在工资表中添加employeeID。而且,通过在employee表中执行自连接,您可以获取所需的信息。
注意:我建议不要在Employee表中添加SalaryID,因为employee表是一个主表,所以如果您稍后与一些外部用户共享employee表,那么在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添加到employer2employee表中,或者仅在您的工资表中添加employeeID。:)
在这两种情况下,只有与表的连接样式在获取时才会改变。
https://stackoverflow.com/questions/51113412
复制相似问题