2009-07-26 21 views
1

クライアント - サーバーデータベースアプリケーションでは、クライアントがサーバーから読み取る必要があるさまざまなオプション、どこに保存するのですか?データベースまたはいくつかのファイルでは、その後、ネットワーク上で転送されるか、またはよりよい方法があります。オプションをデータベースまたはファイルに保存しますか?

答えて

1

これは具体的な内容によって異なります。

一般的に言えば、データベースではなく、サーバー上のファイル(イメージ、ビデオ、曲などのファイル自体は別として)に何かを保存することはほとんどありません。

クライアントの設定を保存している場合は、クライアントのファイルに保存することができますが、これは移植性の問題があります(プロファイル設定は同じユーザーの別のPCには流れません)。クライアントが「オフライン」で使用できる場合は、適切なものにしてください。

恐らく、両方の世界の最高のものは、サーバー上のデータベースに物を保存し、問題のアプリケーションに適している場合はオフラインで使用できるようにクライアント(おそらくファイル)にキャッシュすることでしょう。

1

値への動的アクセスがどの程度必要であるかによって異なります。

ファイルに入れることは、ファイルを変更する必要があることを意味します。ファイルを編集し、新しい値でアプリを再パッケージし、サーバをバウンスさせる必要があります。サーバー上でコードの展開されたバージョンを使用している場合は、クライアントにサーバーへの書き込み権限を与えることになり、問題が発生する可能性があります。

データベースに保存すると、クライアントはファイルを編集することなく変更を確認できます。彼らはすぐに値を見るようになります。サーバーのバウンスは必要ありません。また、データベース権限を使用してアクセスを拒否することもできます。

更新:もう1つの考え方 - すべてのユーザーまたは1人の個人用のオプションはありますか?それが前者の場合、あるユーザーが値を変更し、別のユーザーが値を変更する「オイルキャニング」について心配する必要があります。それが1人の個人の場合は、各ユーザーごとにファイルを用意する必要があります。大きなユーザーベースが問題になる可能性があります。

0

クライアントは設定の一部を読む必要があります。それだけです。また、これらのオプションはクライアントからは変更されず、サーバーからのみ変更されます。

+0

新しい回答を作成しないでください。元の投稿を編集するかコメントとして入力してください。 – duffymo

0

使用状況にもよりますが、自分の経験によれば、データベースにオプションを格納する方が良いと言えます。今日の世界では、私たちは可能な限りシェアード・ナッシング・タイプのアーキテクチャに向かう必要があります。このようにして明日アプリケーションをフェイルセーフにすると、すべてのオプションをデータベースに格納するほうがよいでしょう。それ以外の場合は、アプリケーションのコピーを実行しているさまざまなノード間でファイルを同期する必要があるためです。一方、データベースにある場合はすべてがデータベースにあり、ほとんどのdbはハイアベイラビリティタイプのユースケースをサポートしています。その場合、アプリケーションを異なるノードで実行されているファイルで保持することを心配する必要はありません同期中。多くの要因に依存

0

  1. 使用すると、1台のフロントエンドサーバー 、より多くを持っていますし、データベースのアプローチ が少なくメンテナンスが必要です。あなたがデベロッパー、QAなど prod環境をお持ちの場合 コピー/他の環境の 1からデータベースを復元するときに設定 は変更されませんよう
  2. は、ファイル アプローチは理にかなっています。
0

通常、使用可能な場合は構成設定をデータベースに保存します。しかし、私が現在取り組んでいるプロジェクトでは、クライアントはマスターから更新されたデータベースの複数の分散コピーを求めています。各インストールには、プリンタ設定などの独自の設定があります。

この場合の答えは、ローカルユーザー設定が保存されているローカル設定ファイルを持つことです。アプリケーションは、各設定のデフォルトを生成します。必要に応じて、ファイルを編集して即座に設定を更新することができます。

関連する問題