Php 统计:将以前的值与实际值、数据库结构进行比较
我想知道实际值是否高于前一周的-7个日历日。因此我可以展示信息及其演变: 对于这种情况,我谈论的是我的工作项帖子的状态。这是我的表格请参见状态和状态\u上次更新: 因此,为了实现这一新功能,我考虑两种解决方案。我想知道哪一个更好,原因是什么。或者如果有更好的解决办法 第一个解决方案:我在实际表previous\u status previous\u status\u last\u update中再添加两列 第二种解决方案:我创建一个新表,用于存储以前的状态及其上次更新的日期 第三种解决方案:我创建一个表,存储实际值和以前的值: NBU新 注意:最新更新 nb_正在讨论中 nb\u正在讨论中\u上次更新 你喜欢什么 注意,您喜欢上次更新 不喜欢 注意:您不喜欢上次更新 NBU批准 注意:上次更新获得批准 NBU被拒绝 注意:上次更新被拒绝 nb_新的(旧的) 注意:新增上次更新上次更新 nb\u正在讨论中\u之前 nb\u正在讨论中\u上次\u更新\u上次 注意,你喜欢上一次 注意:您喜欢上次更新上次更新 注意:你不喜欢你以前的工作 注意\u不喜欢\u上次\u更新\u上次 nb_已批准_之前 注意\u已批准\u上次更新\u上次 nb_拒绝_之前 注意:拒绝上次更新上次更新Php 统计:将以前的值与实际值、数据库结构进行比较,php,mysql,database,Php,Mysql,Database,我想知道实际值是否高于前一周的-7个日历日。因此我可以展示信息及其演变: 对于这种情况,我谈论的是我的工作项帖子的状态。这是我的表格请参见状态和状态\u上次更新: 因此,为了实现这一新功能,我考虑两种解决方案。我想知道哪一个更好,原因是什么。或者如果有更好的解决办法 第一个解决方案:我在实际表previous\u status previous\u status\u last\u update中再添加两列 第二种解决方案:我创建一个新表,用于存储以前的状态及其上次更新的日期 第三种解决方案:我创
为什么不在SQL语句中插入一点逻辑,将上周和本周的数据拉入一行,如下所示:
select
sub.thisWeekStatus,
sub.lastWeekStatus,
sub.someOtherColumn
from
(
select
case
when dateField=cur_date() then status
end as thisWeekStatus,
case
when dateField<>cur_date() then status
end as lastWeekStatus,
someOtherColumn
from
yourTable
where
dateField>'dateLastWeek'
) sub
group by
sub.someOtherColumn
显然,您需要稍加修改,我没有费心使用日期函数来提取上周或任何数据,但这可以调整以满足您的确切规格。2个符合规范化标准的表,但是它有点琐碎,可能懒得再加几个专栏。也许是这样做的计划,但直到现在我还没有注册任何上周状态。这就是为什么我的问题是关于数据库结构,如果我应该有2个表或1个包含更多信息列。但正如达贡所说,拥有两张桌子更符合实际,但有点琐碎。谢谢你的回答,以后可能会有用。