0.在庫と商品のテーブル分離
複数ユーザによる同時アクセス競合をできるだけ回避するため、在庫と商品のテーブルは分離し、在庫以外の商品情報はもっぱら商品テーブルに持たせる。 在庫テーブルは在庫データ専用とする。
1.競合発生時の処理
1-1 書き込みループ
ZaikoTestV0.fp7では在庫更新時に競合エラーが発生すると、最終保存時点までRevert(ロールバック)してしまうので、競合するユーザの在庫書き込み処理が終了し、自身の在庫書き込みが成功するまで、書き込みをループさせる(最大ループ数有)。
1-2 遅延オプション
FileMaker Server 10 Advanced を使用すると、スペック的には999ユーザまでが同時アクセス可能となる。 つまり、最大999ユーザが特定の商品の在庫数を同時更新する可能性がある。
人気の新商品のリリース時に膨大な数の受注が想定される場合は、逐次処理を行うのではなく、一定間隔で明細レコードを集計して、在庫を更新するようなオプションを考慮する。 もちろん、在庫の算出は、“一定間隔”の分、遅延する。
2.在庫算出時点
特定の日付を指定して、その日付時点の在庫数を算出する場合は、「商品別末日時点在庫テーブル」を作成して月次処理を行い、この際に各商品の末日時点の在庫数をこのテーブルに書き込む。
これにより、日付指定により在庫を算出する場合でも、クエリの対象となるデータを最大1~2カ月程度に限定できる(高速化)。
以上
【関連リンク】
- 土屋企画の講習 ― FileMakerで在庫管理システムを作る(対象者:中級、4時間×2日)
- 講習連動―在庫管理テンプレート『FMEasy在庫 R1.0』をリリース
- 『FMEasy 在庫 IWP』機能紹介動画 ← New !
- 『FMEasy在庫』機能紹介動画 ← New !
- 簡単? FileMakerで在庫管理(1)
- 簡単? FileMakerで在庫管理(2)
- 簡単? FileMakerで在庫管理(3) --- 倉庫など場所別に在庫数を把握する
- 簡単? FileMakerで在庫管理(4) --- ExecuteSQLによる在庫数算出
- 簡単? FileMakerで在庫管理(5) --- 倉庫間移動
- 簡単? FileMakerで在庫管理(6) --- 場所別在庫レコードの作成方法
- FileMaker V10による在庫管理、一考
- FileMaker V10による在庫管理、一考(2)
- FileMaker V10による在庫管理、一考(3)
2012/8/1追記:
当社の在庫管理の講習で使用してるサンプルシステム「FMEasy在庫」を公開しました。フリー版/開発版のダウンロードは→こちら
【FMEasy在庫 の画面】