現在、PHP ベースがあり、その中でユーザーは自分のアカウントにログインできます。私たちのサイトは非常に大きく、開発者は各ユーザーに利益をもたらすために任意の量のデータを保存する方法を望んでいます (そのため、ユーザーがページに入力したものである可能性があり、ユーザーがそれを行ったという事実に基づいて、異なる値でページを読み込むことができます)。彼らは戻ってきます)。
問題は、この永続的なデータを保存する最善の方法がわからないことです。最初に考えたのは、MySQL データベースのシリアル化された PHP 配列に格納することでした。これは問題なく動作しますが、ユーザーが 1 つのページを開いて配列をプルし、それを変更する必要があると判断して変更するという同時実行の問題が発生し、その間に別のタブでページが開かれていることを除いては問題ありません。配列の同じ元のコピーを取得し、別の変更が必要であると判断し、それをデータベースに書き込むため、1 つのページだけが「勝ち」、変更は失われます。ユーザーがサイトの複数のページを異なるタブで開いている可能性が非常に高い (そして現在も発生している) ため、これを考慮する必要があります。
2 番目の解決策は、最初の解決策の単なる拡張であり、更新時刻のタイムスタンプを MySQL に保存できます。開発者が配列をプルしてから配列全体が更新された場合、配列全体を再プルする必要があります。それらの変更がまだ関連していることを確認し、再送信して、新しい配列になるようにします。これはちょっと面倒に思えますが、現時点で私が持っている最良の解決策です。他にアイデアはありますか?