2010-05-16 33 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