我是关系数据库和mysql的高手。我的任务是创建一个应用程序,可以跟踪全年的销售一直到今天。因此,当员工进行销售时,销售金额和销售日期都保存在数据库中。
这个数据库需要保存当天、周、月和年的当前销售额。它还需要跟踪这些销售属于哪个员工,以及该员工在给定的一天内完成了多少销售。
我已经绘制了一个数据库图,并在mysql中构建了表。我遇到的问题是我听说(通过在线教程等)多对多或连接表不应该有重复。
我的连接表就是我的销售表。它与进行销售的员工有多比1,与当天的销售有多比1。所以employee1一天做了3次销售,我的销售表是这样的:
sale_id | sale_amount | day_id | employee_id
1 500 1 1
2 600 1 1
3 750 1 1
其中,day\u id是当前日期,employee1是雇员id。问题1,这是坏的,如果是的话,什么是更好的解决方案?
问题2,确定一年中的日/周/月以跟踪所有这些数据的最佳方法是什么?手动输入每周7天,每年52周,每年12个月似乎过于乏味。我在5年内加入,然后第一年加入12个月,第一年加入52周,然后在加入天数之前停下来,看看是否有更好的解决方案。
在此方面的任何帮助都将不胜感激。此外,我想这样做没有任何额外的第三方软件,如果可能的话。
非常感谢您的帮助!
1条答案
按热度按时间zvms9eto1#
将日期存储为datetime类型,而不是将表存储为天、周、月和年。你只需要两张table。
员工表:
销售表:
从这些表中,您可以按所需的任何时段类型生成任何报表。
例如,您可以按员工和周生成报告,其中包含小计,如下所示:
有关mysql日期函数的更多信息,请参阅此参考。使用这些函数,您可以按周、日、周、月和年生成报告。