ビルドに関するアドバイスを探しています:レコードを作成、更新、削除するPHPアプリケーションがありますが、これは従来の非SQLベースのデータベースに緊密に統合されています。多くのDB呼び出しをやり始めると、実際には非常に遅くなります。 私はこれをより多くのバックグラウンド体験にして、ユーザーが何かを作成または編集したときに、すべての変数、配列、およびオブジェクトをMySQLデータベースに書き込む必要があり、その後バックグラウンドスクリプトを読み込みこれらのレコードを処理して、要求をレガシーデータベースに処理します。PHP-MySQLのバックグラウンドタスクの作成についてのアドバイス
私はタスクを追跡するテーブルと、変数、オブジェクト、配列、およびそれらの値のすべてを追跡する別のテーブルが必要です。
ここで私は第二テーブルのDB構造がなければならないであろう考えていたものです。
- varが配列またはオブジェクトであれば格納する列
- TASK_IDを格納するための列、単純なvarの場合はNULLを返します。
- アレイ/オブジェクトの名前を格納する列var。
- オブジェクトの場合はそのオブジェクトの型を格納するための列。
- アレイ/オブジェクトグループIDを格納する列。オブジェクトの単純VAR、方法または名前の名前を格納する
- カラム(varsのものを追跡するためのオブジェクト/アレイに属する)/配列
- カラムvarの値を格納する ここで
は、いくつかの例のようになります。
1 | NULL | NULL | NULL | NULL | 'foo' | 'bar'
1 | 'array' | 'foo_array' | NULL | 1 | 'foo' | 'bar'
1 | 'array' | 'foo_array' | NULL | 1 | 'foo2' | 'bar2'
1 | 'object' | 'foo_obj' | foobar_object | 2 | 'foo_method' | 'bar'
1 | 'object' | 'foo_obj' | foobar_object | 2 | 'bar_method' | 'foo'
これは非常に複雑なアプローチのように見えるのか?私は狂って、これを考えていますか?誰かが私がこれにアプローチすべきより良い方法を考えることができますか?
ありがとうございました。
キューが処理されるまでユーザーのやりとりがデータベースに書き込まれないため、このアプローチの方が経験が悪化する可能性があります。移行できない理由は何ですか? –