如何规范化表格

问题描述 投票:-1回答:3

我想我应该先解释一下系统实际做些什么以获得更好的理解。

系统是工资单查看器网站,其中上传者(hr人员)以excel格式上传一堆工资单,这些条目被保存到数据库中。然后,工资单查看器将获取当前登录用户的emp_id,并显示其所有earnings, deductions, info和其总计earnings(all earnings are added), total deductions(all deductions are added) and netpay(total earning-total deduction)

我的问题是我的教授说我需要对表进行“规范化”,但我想知道如何将其规范化,因为我认为这是一样的“规范化”。但是,我确实尝试创建两个erds,但是我有几个问题:

  1. 当系统的重点只是为了读取上传者提供的内容时,为什么我要分割收益和扣除额?
  2. 我的教授建议我得到所有雇员相同的扣除额,但没有这样的事,我能想到的最接近的是保险,保险也随着依赖关系和其他影响保险的因素而变化。 >
  3. [如果我确实尝试创建第3条,那么在费率发生变化时(如果2月份的保险1 = 100美元在3月份变为200美元,就会出现问题。由于工资单查看器依赖于该表,这意味着如果用户查看他2月份的工资单,他的保险费也将为$ 200。
  4. 我正在创建该数据库以符合系统要求,即上传者上传工资单电子表格的系统要求,这不是证明我的erd足够的理由吗?也许这是一个薪资系统,我可以基于该系统设置其他表,而不影响薪资单BUT的输出,因此输出已经完成,小时仅需要将其上传到数据库。
  5. 我的第一个ERD:“在此处输入图像描述”>>

    我的第二个ERD:“在此处输入图像描述”

((我这样做是为了对其进行规范化,但是出于系统的要求,我认为这不合适)

我想我应该首先解释系统实际做些什么以获得更好的理解。该系统是工资单查看器网站,其中上传者(hr人员)上传了一堆...

mysql normalization data-modeling
3个回答
0
投票

我的猜测是,您的教授希望您没有30个扣除字段。就像...当您建立桌子并发现自己在做什么:

object_typa_1 | object_typa_2 | object_typa_3 | object_typa_4 | object_typeb_1 | object_typeb_2 ..

1
投票

根据我的判断,您似乎已经很接近了,您只需要将扣除额和收益表的关系更改为一对多,并删除所有多余的“收益”和“扣除额”列,以下:


0
投票

我认为下表结构将解决您的问题。 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.