我正在用mysql做一个非常简单的数据库来跟踪项目的移动。当前的纸质表单如下所示:
Date totalFromPreviousDay NewToday LeftToday RemainAtEndOfDay
1.1.2017 5 5 2 8 (5+5-2)
2.1.2017 8 3 0 11 ( 8+ 3 -0)
3.1.2017 11 0 5 6 (11+0-5)以此类推。在我的表中,我想使totalFromPreviousDay和RemainAtEndOfDay计算字段只显示在我的前端。这主要是因为我们倾向于因为错误而在纸上擦除。我希望根据对其他两个字段的更改来反映它们。因此,我这样做了我的表:
id
date
NewToday
LeftToday现在我面临的问题是,我想选择任何日期,并能够说“在一天的开始或前一天有5个项目,然后添加5个项目,剩下0个项目,当天结束时有10个项目。”
到目前为止,我真的想不出有什么办法。理论上,我想尝试这样的方式:如果请求的日期是2017年2月1日,从0开始,因为那是我们开始收集数据的日期。如果不是,则循环遍历0处的记录并进行计算,直到找到请求的日期。
但这显然是低效的,因为我每次都要从第一次约会开始到最后一次约会。
我的方法是正确的,还是我应该在表中包括列?如果是第一种,在python/mysql中该怎么做呢?
发布于 2017-04-06 21:14:52
我认为您必须稍微后退一步,首先定义业务需求(值得与以前与股票打交道的人交谈),因为这些需求决定了您的表结构。
系统始终跟踪当前的库存水平和走势。保存历史库存水平的频率是一个业务决策,这会影响您存储数据的方式。
您可以将当前库存水平与所有交易一起保存。在这种情况下,您应该将库存水平存储在transactions表中。您甚至不必对每天的交易进行汇总,因为每天的最后一笔交易无论如何都会有每日的收盘库存水平。
您可以选择定期保存历史库存水平(每天/每周/每月等)。在这种情况下,您将有一个单独的历史股票水平表,其中包含股票id、股票名称(名称可能会随着时间的推移而更改,因此保存它可能是一个好主意)、日期和级别。如果您想知道在您的保存点之间的任何时间点的历史库存水平,那么您需要在要查找的期间之前获取最新的保存的库存水平,并将所有交易汇总到保存的期间。
https://stackoverflow.com/questions/43255792
复制相似问题