Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于商业智能的时间机器(PHP/MySQL)_Php_Mysql_Business Intelligence_Timemachine - Fatal编程技术网

用于商业智能的时间机器(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

目前,我正在使用PHP/MySQL从头开始为一个开源
商业智能
软件开发一个时间机器

我的时间机器表被所有其他需要日期信息(如订单、产品等)的表使用,并且它们与时间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)来代替时间戳。因为如果我需要时间,我可以从其他桌子上拿。非常感谢。