この表から始めましょう:
CREATE TABLE IF NOT EXISTS `resourceMovement` (
`resourceID` INT(4) UNSIGNED NOT NULL ,
`movementDateTime` DATETIME NOT NULL ,
`movementQuantity` INT(11) UNSIGNED NOT NULL ,
`fromLocationID` INT(4) UNSIGNED NULL ,
`fromIndividualID` INT(11) UNSIGNED NULL ,
`fromDeptID` INT(4) UNSIGNED NULL ,
`toLocationID` INT(4) UNSIGNED NULL ,
`toIndividualID` INT(11) UNSIGNED NULL ,
`toDeptID` INT(4) UNSIGNED NULL ,
`lastUpdated` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (`resourceID`, `movementDateTime`, `movementQuantity`) ,
[ List of foreign key constraints. ]
これは、特定のリソースIDの特定の量が1つの部門/場所/人から別の部門/場所/人にどのように移動するかを時間の経過とともに追跡します。
私がやりたいのは...何かを作成することです。toLocationID / toIndividualID / toDeptID値をループし、それらの宛先に関連付けられた各resourceIDの実行中のインベントリーを生成するプロシージャーまたはトリガーまたはビュー。
これを効率的に行うには、MySQLストアドプロシージャがリモートで十分ではありません。
部門、場所、および個人用にそれぞれ1つずつ、合計3つの実行中の在庫テーブルを作成し、移動テーブルが更新されたときにそれらのテーブルを更新するトリガーを作成できると思います。そのためには、通常のテーブルと一時的なテーブルのどちらが適していますか?
そして、詳細な質問はちょうど来続けます。それで、私は一般的な質問を残します:実際の実行中の在庫を決定するために在庫の動きを監査するテーブルをスキャンするための最良の方法は何ですか?
ありがとう!