2011-01-31 68 views
0

我有一個運行每n個時間量的web應用程序(使用codeigniter構建)。它將執行一個獲取最近訂單列表的存儲過程。部分任務是使用存儲過程,但我確定解決方案是否需要另一種不應該成爲問題的方法。從數據庫中提取以前未見過的記錄

檢索到的記錄將分別具有唯一的訂單ID。當記錄被取出時,訂單數據被採集,放在一起作爲pdf,並通過電子郵件發送給訂單所有者。

我的問題是哪些是最好的方式去關於只檢索未處理過的記錄。我最初的想法是存儲在文件中處理的最後一條記錄。每次運行應用程序時,查找文件,獲取最後存儲的ID,然後用id>>取出記錄。

後來我寫了一個Perl腳本,它使用Tail模塊做了一些與日誌文件相似的Perl腳本。它會查找並存檔並看到一條未處理的新行,然後再處理它,但是再次,scipt正在運行。我知道這是完全不同的,但有什麼類似的,我可以在PHP中使用db做什麼?

我不希望在數據庫中存儲任何東西,只能通過存儲過程查詢。

感謝,

比利

+0

爲什麼你不想在數據庫中存儲任何東西?您似乎希望存儲一段可以在相當長一段時間內持續存在的信息,這正是數據庫的優點。你真的更關心速度,更開放的連接,還是別的什麼? – Jason 2011-01-31 15:50:24

回答

3

恕我直言檢索之前尚未處理的記錄的最佳方式是獲取具有特定狀態的記錄。

你提到:

我不希望有存儲在一個數據庫 什麼,只能通過 存儲過程查詢。

我建議在您的訂單表中添加狀態字段,並在訂單發送後更改訂單狀態。

我不會相信取回訂單ID>先前發送的訂單ID。如果您需要更新已發送的舊訂單並且需要再次發送,會發生什麼情況?

1

嗯,聽起來很笨重給我。我會將這些信息存儲在數據庫中。

向訂單表中添加一個標誌,指示是否已處理它。或者用MailID,OrderId來保存表格,以便在郵件中保存訂單的郵件。要發送新郵件,只需左連接並說明MailId爲空。那給你那些還沒有郵寄的東西。

我沒有看到一個理由繼續從DB這個單獨的,很多的原因(尤其是保持簡單...),以保持它英寸

RGDS GJ

相關問題