11

MySQLデータベースにオンラインでデータを保存するWebアプリケーションがあります。また、PHPコードを使用してデータを取得し、サーバー上で計算を実行して、結果をユーザーに送り返します。

データは非常に単純です。名前、説明、価格、VAT、データベースから読み取られてサーバー側で操作される1時間あたりの料金です。

多くの場合、クライアントはインターネット接続が不十分または利用できない環境で作業します。この場合、クライアントがオフラインで作業できるようにしたいと思います。新しい名前、説明、価格を入力し、最後のVATを使用して計算を実行します。次に、接続が利用可能になり次第、すべてのデータを同期します。

今問題は、これを達成するための最良の方法や技術が何であるかわからないということです。心配しないでください、私は私のためにコードを書くことを求めていません。そのようなシステムを構築する正しい方法は何ですか?

オンラインのMySQLおよびPHPコードをローカルで使用する簡単な方法はありますか?

必要なデータをローカルファイルに保存し、JavaScriptで計算を再構築し、ローカルで実行してから、データベースが利用可能な場合はデータを同期する必要があります。

1つはローカルでもう1つはオンラインの2つのMySQLデータベースを使用し、データが利用可能なときに2つのデータベース間で同期を行う必要がありますか?はいの場合、この操作を実行するためにどのテクノロジー(言語)を使用しますか?

可能であれば、過去に同様のプロジェクトに取り組んだPHPコーダーからの回答をお願いします。また、使用するフレームワークの構造とテクノロジーに関する詳細な情報を提供してください。私はこのアプリケーションの書き方に慣れていないことを忘れないでください。私が6歳であるか愚かであるかのように、数分時間を割いてすべてを説明していただければ幸いです(私はそうです!)

私は本当にどんな助けと提案にも感謝します。

チャオ、

ドナート

4

2 に答える 2

13

基本的に3つの方法があります。

バージョン1:「オールドスクール」:PHP-Gtk+およびbcompiler

  • まず、まだ行っていない場合は、ビジネスロジックをプレゼンテーション層(HTML、テンプレートエンジンなど)およびデータベース層から分離する必要があります。
  • 次に、データベースレイヤーを調整して、代替DB(ローカルSQliteが頭に浮かぶ)と共存し、オンライン時に再び同期を実行できるようにします。
  • 最後に、PHP-Gtk +を使用して新しいUIを作成し、これらすべてをbcompilerでパックします

バージョン2:「標準」:サーバーを持ち運びます

  • Server2Go、WampOnCD、およびその仲間を見て、「ダブルクリック可能なWebサーバー」を作成します(Z- WAMPから開始) 。
  • バージョン1と同様に、DBレイヤーを適応させる必要があります。

バージョン3:「Web2.x」:アプリケーションをサーバーからブラウザーに移動します

  • アプリケーションロジックをサーバー側(PHP)からクライアント側(JS)に移動します
  • サーバー部分(PHP)をデータアクセスまたは同期レイヤーのみにする
  • HTML5オフライン機能を使用して、オフラインの場合はデータアクセスをローカルデータに置き換え、オンラインの場合は再同期します

どれが一番いいですか?

これはあなたが持っているものとあなたが望むものに依存します。ビジネスロジックのほとんどがPHPである場合、それをブラウザに移動すると、非常にコストがかかる可能性があります。これにより、まったく新しいクラスのセキュリティナイトマーが生成されることに注意してください。個人的にはこの方法での移植はお勧めしませんが、バッキングDBが大きすぎない場合は、新しいアプリに移植することをお勧めします。

PHPのビジネスロジックを維持することを選択した場合、1と2の間の乾燥は、多くの場合、アプリのUIの量の問題になります。CRUDフォームが数個しかない場合は、1。が良いアイデアかもしれません。最もポータブル(持ち運びの意味で)。そうでない場合は、2を使用します。

于 2012-09-04T22:57:39.400 に答える
2

私は船のために同様のシステムで働いてきました。インターネットは海の真ん中で高価であるため、電子メールを介したデータベース同期を備えたローカルWebサーバーがインストールされています。

また、経験のない人でもシステムをインストールしたり、システムを更新したりできるように、シンプルな.exeパッケージを作成しました...

于 2012-09-04T22:56:03.343 に答える