2010-05-16 32 views
0

我在MySQL数据库中有一个订单表,它有一个字段/列,用于存储订单放置时的日期时间戳。计算列或存储过程还是只需要php函数?

我需要计算何时必须发货。我可能会弄清楚如何编写一个函数来计算出货日期,并在需要时调用它,但我认为,不确定将shipdate作为计算列是否更有意义。

这就是说,我从来没有使用存储过程或创建一个计算字段。后来我认为会是最好的,但再次不确定。我曾经在FMP中一直做计算场,但是我已经离开了那个计划。

+0

只是在选择时间计算它。有什么问题? – 2010-05-16 20:05:55

+0

只是认为它可能更好地在一个领域,所以我可以从任何应用程序访问它,而无需在每个选择语句计算它 – mcgrailm 2010-05-16 20:08:17

+0

SQL是基于设置;虽然你可以自由创建你的功能,但它不会很好地扩展(当你增加应用记录的数量时它会变慢)。 – 2010-05-16 20:18:59

回答

1

我会做它作为view。这基本上是一个选择语句,其中一个结果列是发货日期。您也可以添加其他相关列。任何有权访问数据库的应用程序都可以像普通表一样访问视图。

如果您的表看起来像:

create table orders(id INTEGER PRIMARY KEY AUTO_INCREMENT, 
        order_date DATETIME);                  

而你总是后3日内发货,你可以使用:

create view order_view as 
    select id, 
     order_date, 
     order_date + INTERVAL 3 DAY as ship_date 
    from orders; 

select语句可以根据需要进行复杂。然后,您只需在任何应用程序中阅读order_view,就好像它是普通表格一样。

+0

这可能很酷我会玩这个,看看这是否符合法案。有没有使用这个警告 – mcgrailm 2010-05-16 20:13:01