数据库设计中的表关系问题

时间:2014-07-07 05:06:58

标签: sql sql-server database database-design relational-database

我有Payrollsalary表

PayrollSalaryMaster (PayrollID,PayMonth,EmployeeID)
PayrollSalaryDetail (DetailID,PayrollID,ComponentID,Amount)

我有修正表,如果有偏差表格批准的工资,则记录工资修正

PayAmmendments (AmendmentID,Detailid,Amount)

现在我有了新的要求,即员工薪水或其任何组件可以保留(即)它不会以当前薪水支付。我将PayAmmendments表修改为

PayAmmendments (AmendmentID,Detailid,Amount,IsHold)

问题
现在,如果某个员工的全薪被搁置,如何处理是上述设计中的情景

2 个答案:

答案 0 :(得分:0)

如果我的理解是正确的,您可以按如下方式保存数据:

<强> PayrollSalaryMaster

PayrollID  |  PayMonth  | EmployeeID
PAYROLL1   |  JULY      | E123

PayrollSalaryDetail

DetailID |  PayrollID  |  ComponentID  | Amount
DET1     |  PAYROLL1   |  COMP1        | 0

PayAmmendments

AmendmentID   |  Detailid  |  Amount |  IsHold
AM1           |  DET1      |  0      |  TRUE

如果员工的工资为5000,您可以根据自己的情况尝试以下

PayrollSalaryDetail

DetailID |  PayrollID  |  ComponentID  | Amount
DET1     |  PAYROLL1   |  COMP1        | 5000

PayAmmendments

AmendmentID   |  Detailid  |  Amount |  IsHold
AM1           |  DET1      |  -5000  |  TRUE

答案 1 :(得分:0)

我认为保持专栏将设置在主人,而不是修正。

原因是你持有员工的全薪,而不仅仅是修改。当你想显示特定月份的工资记录时,这也很有用。

是的,很高兴添加&#34; IsHold&#34;修改表中的栏目,如果贵公司决定在申报特定员工后仅持有欠款,而不是全薪。