用于商业智能的时间机器(PHP/MySQL)
目前,我正在使用PHP/MySQL从头开始为一个开源用于商业智能的时间机器(PHP/MySQL),php,mysql,business-intelligence,timemachine,Php,Mysql,Business Intelligence,Timemachine,目前,我正在使用PHP/MySQL从头开始为一个开源商业智能软件开发一个时间机器 我的时间机器表被所有其他需要日期信息(如订单、产品等)的表使用,并且它们与时间id绑定。其MySQL表如下所示: time_id | timestamp | day | week | month | quarter 1 1303689654 25 17 4 2 2 1303813842 26 17
商业智能软件开发一个时间机器
我的时间机器表被所有其他需要日期信息(如订单、产品等)的表使用,并且它们与时间id绑定。其MySQL表如下所示:
time_id | timestamp | day | week | month | quarter
1 1303689654 25 17 4 2
2 1303813842 26 17 4 2
...
order_id | time_id ...
3123 2
...
订单表绑定如下所示:
time_id | timestamp | day | week | month | quarter
1 1303689654 25 17 4 2
2 1303813842 26 17 4 2
...
order_id | time_id ...
3123 2
...
编辑:类似于
问题在于获取时间(13:45)信息。通常我不需要这个,但像订单一样,有时几张桌子需要这个小时/分钟的信息
我怎样才能巧妙地解决这个问题?我有几个解决方案,但首先我想看看您的意见。您为什么不直接将时间戳存储在其他表中
或者,如果您想保留dates表,只需在需要它的其他表中添加一个TIME
字段。如果我正确理解了您的时间戳,您可以:
echo date('H:i.s',1303689654);
编辑
你想干什么?重新阅读您的问题后,您可能正在SQL()中查找JOIN关键字。看起来像是设计缺陷。使所有其他表依赖于计时表。。帮自己一个忙,用一个简单的时间戳替换time\u id列。并添加逻辑,将这些信息解析到您需要的各个组件中。我不明白这是为了什么。为什么不直接使用DATETIME
字段?您可以从中提取所有其他信息(日、周、月…。@netbrain-我使用此表进行实时分析(BI)。这就像是开始模式。所以我必须这么做。@Pekka-它类似于星型模式()@dino beytar:我想你不明白,日期只是一个日期,而不是你在星型模式中引用的对象。星型模式的起点是在特定日期出售的单位数量,其中日期是时间戳或日期时间,您存储单位数量和产品id,这将反过来引用您的产品表等。问题是,如果一天中有多个时间,那么您必须为一天创建多个时间戳。但我一天不应该创造超过一次。到目前为止,ThiefMaster的解决方案解决了这个问题。哦,好的。通常,时间戳对于单个操作是唯一的,因此ThiefMaster的回答非常合适+1+1根据您的解决方案,我不再需要时间机器表中的TIMESTAMP
。我的意思是,我可以使用Ymd
比如(20110403)来代替时间戳。因为如果我需要时间,我可以从其他桌子上拿。非常感谢。