监控订单的MySQL表并存储订单历史记录


monitoring mysql table for orders and storing orders history

  1. 有一些网站,当用户可以点击"订单"和他的订单我保存到订单表中。
  2. 订单表有 3 个字段:iduser_idbook_id

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

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

我使用 MySQL 5.0 databse...

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

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

你需要

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

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

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

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