0
  1. 当用户可以单击“订单”并将他的订单保存到订单表时,我有一些网站。
  2. Orders 表有 3 个字段:id, user_id, book_id

我需要一些脚本来监控订单表中的变化——如果出现一些订单,它将读取它们、“执行”并从订单表中删除。

我怎样才能有效地做到这一点?我以前从来没有做过这样的事情——我想到了一些 php 脚本,它会以一定的时间间隔(10-15 秒——它必须很快)执行,并且会读取订单表。但是后来我认为我必须保留订单历史记录 - 还有第二个问题 - 我应该为订单历史记录创建第二个表还是只是在订单表中添加“已完成”之类的字段?我一次问这两个问题,因为它们是相互关联的——也许当我的订单表将包含已完成的订单时,通过我的脚本查询它会效率不高。我正在寻找最佳解决方案。

我使用 MySQL 5.0 数据库...

- - - - - 编辑

我不能使用触发器 - 当订单出现在订单表中时,我必须执行一些 php 脚本来处理订单!

4

1 回答 1

2

你需要一个触发器。像这样的东西会起作用。

create trigger newOrderTrigger after insert on order_table for each row
//you order execution code goes here

请参阅MySQL 触发器文档。我还发现本教程很有帮助。

至于你的第二个问题,这取决于你的要求。如果您需要完整的可审计历史记录,您可能应该将更改复制到新表中。如果你不这样做,添加一个 order_status 并将值从 open 更改为 complete 会减少工作量。

于 2012-05-14T23:02:52.120 回答