监视mysql表的订单和存储订单历史记录

时间:2012-05-14 22:31:53

标签: php mysql sql

  1. 我有一些网站,当用户可以点击“订单”并将他的订单保存到订单表。
  2. 订单表包含3个字段:iduser_idbook_id
  3. 我需要一些脚本来监控订单表中的更改 - 如果出现某些订单,它会读取它们,'执行',并从订单表中删除。

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

    我使用MySQL 5.0数据库...

    ----------编辑

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

1 个答案:

答案 0 :(得分:2)

你需要一个触发器。这样的事情会起作用。

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

MySQL Trigger documentation。 我也发现这个tutorial很有帮助。

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