Database design 具有非严格重复周期的数据库结构设计

Database design 具有非严格重复周期的数据库结构设计,database-design,Database Design,我正在设计一个非常小的关系数据库,用于跟踪我在不同工作中的工资。由于我有好几份工作和一份工作,所以工作日程几乎是固定的,每个工作日从上午9点到下午2:30,这是一个长期的职位,我按月领工资。其他工作的日程安排是不确定的,而且是随机的,我是按小时计酬的 这是我的困境。如果我在一个表格中记录我为所有这些工作工作的每一小时以及我从中获得的相应工资,那么我将不得不将我的月工资除以一个月内的所有工作时间,这也意味着对于固定计划的工作会有很多重复输入。上午9时至10时;上午10时至11时;等等,具有完全相同

我正在设计一个非常小的关系数据库,用于跟踪我在不同工作中的工资。由于我有好几份工作和一份工作,所以工作日程几乎是固定的,每个工作日从上午9点到下午2:30,这是一个长期的职位,我按月领工资。其他工作的日程安排是不确定的,而且是随机的,我是按小时计酬的

这是我的困境。如果我在一个表格中记录我为所有这些工作工作的每一小时以及我从中获得的相应工资,那么我将不得不将我的月工资除以一个月内的所有工作时间,这也意味着对于固定计划的工作会有很多重复输入。上午9时至10时;上午10时至11时;等等,具有完全相同的值。另一方面,如果我每周或每月进行一次付款间隔,它肯定会适合我的固定计划工作,但会丢失很多我应该跟踪的非重复周期工作时间的信息。我可以制作两个不同的表格,但两个不同的表格基本上会以不同的时间间隔录制同一个课程,这听起来明智吗?更复杂一点的是,我确实想记录我固定日程工作的假期,所以实际上最好是按天而不是按月进行跟踪


如有任何建议,将不胜感激。谢谢。

我想你有两个选择:

正如您所建议的,有两个表,一个用于捕获临时付款,另一个用于存储定期每周/每月付款。 这方面的优势在于将这两种收入很好地分开。缺点是,您的报告编程变得有点复杂。您总是需要根据一些逻辑添加这两个表,以了解如何分配定期付款

您只保留一个表,但您会在不同的日期分配定期付款,例如,如果您在4周内获得200美元,您将在每个工作日创建一个条目,假设每周5天为10美元

我个人会选择方案2: 为定期付款创建一个主表,该表定义了每周/每月、每季度等的时间间隔以及该付款的时间,例如每月20小时,100美元。 创建一个表来捕获实际的细节,然后可以如下所示: 日期/起始时间/小时数/类型/未学习的数量/正规课程

然后,类型将定义它是常规付款还是临时付款,以允许某种报告详细信息,并且regulancomeid将是到主表的链接。 对于常规赢得的时间,如果您计划将该字段作为唯一索引的一部分保留,我会将FromTime保留为空,因为某些DB系统不允许在唯一/主要索引中使用空值,或者输入默认值,例如0AM


选项二的优点是,它使您的所有报告更加容易,例如显示过去3个月每天工作的小时数。尝试使用选项1来实现这一点,可能也有可能,但您需要添加大量编程逻辑,而选项2将是一个简单的SQL语句。

有人能在这里给出一些想法吗?或者如果你们不想回答这个问题,请指出一个关键字或我可以进一步研究的方向吗?这是什么问题?我做过谷歌搜索,但什么也没找到。非常感谢。谢谢你,库马拉!你的解释很清楚。我非常感激。这里只有一个后续问题:这个问题属于什么类型的问题?我可以称之为数据库设计问题还是数据库建模问题?我将把它放在数据库设计和数据库建模两个方面