首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将外键应用于此特定要求?

问如何将外键应用于此特定要求?
EN

Stack Overflow用户
提问于 2015-02-02 12:59:19
回答 1查看 42关注 0票数 0

我目前正在制作一个工资单系统,其中有两个表,account_table和payslip_table。我目前在数据库设计上遇到了麻烦,在创建两个表之间的关系还是根本不创建一个表之间,我感到很困惑。我想我将首先解释这个系统是如何工作的:

  1. 管理员登录到站点
  2. 管理员转到上传工资单页面。
  3. 管理员上传excel文件,后端代码解析excel文件并将其保存在数据库中。
  4. 用户登录到站点
  5. 用户转到工资单页面
  6. 薪资单页面显示employee_id是session_user的行(因为用户的用户名是他的employee_id)

account表有以下列:

  1. employee_id
  2. 密码
  3. first_name
  4. last_name
  5. user_type

工资单表有以下列:

  1. payslip_id
  2. employee_id
  3. 薪水
  4. 税费
  5. total_deductions
  6. total_salary

这个系统的要求是,业主想上传一张工资单,即使“没有一个帐户的用户”。

问:那为什么你的桌子是这样设计的?

答:工资单本质上有一个employee_id,它的存在是决定哪一张付款单拥有哪一张的关键。要想有效地显示工资单,我所需要做的就是将会话用户(我已经提到的是他们的员工id,因为这是他们的用户名)和工资单表上的employee_id进行比较,并只重复被击中的行。

当用户不再是员工时,工资单会发生什么变化?payslip_table上将有无用的行

答:我决定创建一个名为created_on的专栏,并添加一个triger来删除3个月前的工资单(因为它们已经没用了)

当用户不再是员工时,帐户会发生什么变化?

管理员有权删除用户,一旦用户离开公司,管理员就可以终止帐户,如上所述,删除用户的工资单最终将被删除。

问:为什么要经历这些麻烦?

业主明确表示,即使一个账户尚未开立,他也希望将工资单准备好。因此,如果一个人要创建一个账户,他的工资单就会自动准备好供查看。

我在数据库设计方面的知识非常少,我对建议非常开放。

或者,如果你们可以建议另一种方法来实现使用外键的要求,那么这将是最好的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-02 13:13:19

您应该在这两者之间创建一个关系,正如您可以看到的那样,here可以将一个空值添加到外键字段中,然后用一个employee_id填充它。

这将有助于查找行,并确保不存在浪费空间的无用数据。

我看到的唯一问题是管理员将如何将已经在系统上的工资单链接到一个新的员工帐户。为新员工号码找到正确的工资单

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

https://stackoverflow.com/questions/28278305

复制
相关文章

相似问题

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