从数据库中拉出以前看不见的记录

时间:2011-01-31 15:41:10

标签: php sql sql-server codeigniter

我有一个网络应用程序(使用codeigniter构建),每隔一段时间运行一次。它将执行一个存储过程,该过程获取最近订单的列表。部分任务是使用存储过程,但我确定解决方案是否需要另一种不应成为问题的方法。

检索到的记录将各自具有唯一的订单ID。当记录被提取出来时,订单数据被记录在一起,作为pdf放在一起,并通过电子邮件发送给订单所有者。

我的问题是哪种方法只是检索之前未处理过的记录。我最初的想法是将最后处理的记录存储在一个文件中。每次运行applcation时,查找文件,获取最后存储的ID,然后提取id为>的记录。那个那个。

前段时间我写了一个Perl脚本,它使用Tail模块执行与日志文件类似的操作。它会查找并提交并查看未处理的新行然后处理它,但是那个scipt又一直在运行。我知道它有很大的不同但是我在PHP中可以用db做任何类似的事情吗?

我不想在数据库中存储任何内容,只能通过存储过程进行查询。

谢谢,

比利

2 个答案:

答案 0 :(得分:3)

恕我直言,检索以前未处理过的记录的最佳方法是获取具有特定状态的记录。

你提到了:

  

我不想存储   DB中的任何内容,只能通过a查询   存储过程。

我建议在订单表中添加状态字段,并在订单发送后更改订单状态。

我不相信提取订单ID>以前发送的订单ID。如果您需要更新旧的已发送订单而又需要再次发送,会发生什么?

答案 1 :(得分:1)

嗯,对我来说听起来很笨拙。我将此信息存储在数据库中。

在Orders表中添加一个标志,指示它是否已被处理。或者保留一个包含MailID的表,OrderId可以通过电子邮件跟踪邮件的订单。要邮寄新的,只需离开连接并说出MailId为空的位置。那会给你那些没有邮寄的东西。

我没有理由将这个与数据库分开,并且有很多原因(特别是保持简单......)来保持它。

Rgds GJ