私にはジレンマがあります。専門家の意見をお聞かせいただければ幸いです。
列 STATUS を持つ CARDS というテーブルがあります。レコードのステータスが「ダウンロード」から「公開」に変わった場合、レコード参照を CARD_ASSIGNMENTS という別のテーブルに挿入する必要があります。さらに、SCANNERS にアクティブなレコードがあるのと同じ回数、レコードを CARD_ASSIGNMENTS に追加する必要があります。
つまり、アクティブなスキャナーが 2 つある場合、以下のように CARD_ASSIGNMENTS に 2 つのレコードが作成されます。
ID CARD_ID SCANNER_ID STATUS_ID
1 1 1 4
2 1 2 4
私のジレンマは、上記を実行する最も効率的な方法が何であるかがよくわからないことです。次のオプションを検討しました。
- PHP から - UPDATE クエリを 1 回実行してから、INSERT クエリを実行します。
- CARDS レコードの更新と CARD_ASSIGNMENTS へのレコードの追加を処理するストアド プロシージャを作成します。次に、そのストアド プロシージャを PHP から呼び出すだけです。
- CARD_ASSIGNMENTS テーブルへの INSERTS の処理を処理する CARDS テーブルの ON UPDATE トリガーを作成します。
PS。私のデータベースの簡略化されたバージョンは、MySQL Fiddleで入手できます
ありがとう、
ケイト