設問4 今回のような予約管理機能の不具合を未然に防止するためには、データベースを利用したWebアプリケーションの開発における規約が必要である。特に、データベースから読み込んだデータの更新処理に必要な規約について、Webアプリケーションの特性を考慮した上で80字以内で述べよ。

公式解答例:データベースから読み込んだデータを更新する際に、そのデータが他のスレッドによって変更されていないことを確認する。(56文字)
管理人解答:読み込んだデータを更新する際には、該当テーブルのキー項目に加えて最終更新日時を更新のための検索キーとして利用し、更新件数が0件の場合はエラーとする。(75文字)

解説

開発規約を作成する問題です。

 Webアプリケーションに限らず、排他制御は常に必要となるものですが、Webアプリケーションの場合、多数の利用者が様々な画面を操作するため、排他制御を考慮していないアプリケーションでは、レコードの更新合戦が発生し意図しない結果を引き起こします。公式解答例は「開発規約」としてはシンプルでよく見かけるレベルの記述だと思います。管理人の解答は、「開発規約」と言うには具体的すぎました。公式解答例を見てやっと気づいて頭を抱えていましました。