0
  1. ユーザーが「注文」をクリックして注文テーブルに保存したとき、私はいくつかのウェブサイトを持っています。
  2. Orders テーブルにはiduser_id、 の3 つのフィールドがありbook_idます。

注文テーブルの変更を監視するスクリプトが必要です。注文が表示された場合は、それらを読み取り、「実行」し、注文テーブルから削除します。

どうすれば効率的にできますか?私はこれまでにこのようなことをしたことがありません-いくつかの間隔で実行され(10〜15秒-高速でなければなりません)、注文テーブルを読み取るphpスクリプトについて考えました。しかし、注文履歴を保持する必要があると思いました-そして2番目の質問があります-注文履歴用に2番目のテーブルを作成するか、「完了」などのフィールドを注文テーブルに追加する必要がありますか? この 2 つの質問は相互に関連しているため、一度に尋ねます。おそらく、注文テーブルに完了した注文も含まれている場合、スクリプトでクエリを実行しても効率的ではありません。私は最善の解決策を探しています。

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トリガーのドキュメントを参照してください。このチュートリアルも役に立ちました。

2番目の質問は、要件によって異なります。完全な監査可能な履歴が必要な場合は、おそらく変更を新しいテーブルにコピーする必要があります。そうでない場合は、order_statusを追加し、値をopenからcompleteに変更する方が手間がかかりません。

于 2012-05-14T23:02:52.120 に答える