Webアプリケーションは、プロジェクトを持つユーザーで構成され、プロジェクトは単一のユーザーに属し、URIは:root/project/[pid
になります。Webアプリケーションの共有リソースへの同時アクセスの回避
今私はミドルウェアを持っており、他のプロジェクトへのアクセスを制限しています。ユーザーが自分のプロジェクトを他のユーザーと共有できるWebアプリケーションの機能もありますが、複数のユーザーが1つの共有プロジェクトにアクセスできます。
問題は、project1がuser1とuser2によって共有されている場合、同じプロジェクトに同時にアクセスしたくないということです。 URI root/project/project1_idは両方でアクセスできますが、同時にアクセスすることはできません。
私は現在、どのようにこれを行うことができると考えていますが、私はいくつかのアイデアを持っていますが、これを行うための最良の方法または簡単な方法があるかどうかを知りたがっています。
データベース内のプロジェクトテーブルを変更して、ユーザーがプロジェクトWebページにアクセスするたびにtrueに設定され、Webページを終了するかセッションが終了するときに設定を解除するアクティブフラグを設定することを検討しています。
しかし、これが最善の方法であるかどうかはわかりません。
私はWebアプリケーションのフレームワークとしてlaravelを使用しています。したがって、そのフレームワーク内のソリューションは素晴らしいでしょう。
1人のユーザーに制限したい理由は何ですか?あなたは同じページを編集する2人の人が何かを心配していますか? –
あなたのアプローチはまともです。しかし、_un_lockingアクセスの何らかの方法も必要です。これは、ロック(lock_until)の有効期限によって処理できます。 Webユーザーがいつ「終了」したかを知ることは難しい問題です。そのため、ユーザーがファイルのロックを解除してもらえないため、有効期限が必要です。しかし、その責任をユーザーに押し付けたい場合は、そうすることができます。もう1つの選択肢は、保存にチェック・アンド・セット方式を使用し、2人で同時アクセスを許可し、その間に変更が加えられたときにエラーが発生することです。 –
@willis、それはプロジェクトを編集することができるので、プロジェクトの同じ要素を同時に編集することができれば、醜い – Snedden27