首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多雇主对员工的管理

多雇主对员工的管理
EN

Stack Overflow用户
提问于 2018-06-30 16:59:42
回答 2查看 41关注 0票数 1

希望你做得很好。我正面临着多个雇主对雇员的问题。

我在想什么:

雇主表

代码语言:javascript
复制
employerID,
fname,
lname,
created_at

employee表

代码语言:javascript
复制
 employeeID
    fname
    lname
    creted_at

这是基本表的结构,然后在我为多个雇主到雇员的关系创建了单独的表。

employer2employee表

代码语言:javascript
复制
employer_id,
employee_id

薪资表

代码语言:javascript
复制
salaryID,
salaryAmount,
salaryDate

现在我面临着工资记录的问题。在这里应该优先选择哪个ID?我希望每个员工都能拿到工资,雇主是明智的。请帮帮我。谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 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。

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

票数 0
EN

Stack Overflow用户

发布于 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可能会导致安全问题。

代码语言:javascript
复制
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。:)

在这两种情况下,只有与表的连接样式在获取时才会改变。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51113412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档