1

動的データベースに接続しようとして、実際のレンガの壁に遭遇しました。そして、私はこれを達成する方法がわかりません、

これが私のプロセスです。職場環境の変化に適応できる必要があるアプリケーションがあります。たとえば、職場のサーバーがクラッシュしdb_new、古いデータベース名ではなく、アプリケーションが接続する名前で新しいデータベースを作成した場合です。 。

サーバーのデータベースをリストボックスに表示するウィンドウが既にあり、ユーザーはアプリケーションに使用するデータベースを指定できます。しかし、問題は、新しいデータベースが選択された後に実行できるように、選択したデータベース名をどのように保存できるかということです。..

管理者は、必要に応じてアプリケーションが使用するデータベースを変更できる必要があり、管理者がデータベースを新しいデータベースに戻すまで、アプリケーションは選択したデータベースを使用し続ける必要があります。

質問が少し曖昧な場合はご容赦ください。私はできる限り最善の方法で質問をまとめました。これに関するサポートは本当に素晴らしいでしょう:)

編集:

また、アプリケーションが使用するデータベース名は安全な方法で保存する必要があるため、テキストファイルやxmlを使用できません。:)

4

2 に答える 2

1

まず第一に、テキストまたは XML ファイルを非常に簡単に使用できます。ユーザーがダウンロードできないファイルに情報を保存する場合 (私が想定しているように)、これは可能な限り安全です。誰かがサーバーに侵入してファイルを読み取った場合、とにかくゲームオーバーです。

そうは言っても、MySQL プロキシまたは同様のメカニズムを使用して、WebApp をそこに向けることをお勧めします。別のデータベースへのフェイルオーバーまたは基礎となるデータベースの変更は、WebApp がそれを認識していなくても、プロキシ層で処理できます。あなたのアプリケーションの一部ではありません。私の本ではそうすべきではありません。

于 2012-09-16T12:27:11.557 に答える
0

使用している言語を教えてくれませんでした。そのため、あまり良い提案はできません。

私の最初の考え:

これが PHP の場合、一般的なアプリに次のようなものを使用させることができます。

$db->execute('sql statement here');

そして、必要に応じて管理者に現在の $db を変更してもらいます。そうすれば、 $db->e​​xecute() は常に「現在の」データベースで実行されます。

編集: これは C# でも機能するはずです。データベースを使用する関数に現在の db 接続である変数を呼び出す場合は、必要なときにいつでも db 接続を適切なデータベースに変更できますが、残りの部分は同じ変数であるため、実行を継続できます。

于 2012-09-16T12:15:02.207 に答える