2011-07-22 10 views
0

私はapp.configにたくさんのものを持っており、変更が必要な場合は、アプリを再起動する必要があります。私の24時間年中無休のWebサーバーシステム(それは本当に24x7で、23x7でさえない)です。私は、DBテーブルに設定情報を保存し、必要に応じてクエリを使用するための良い戦略を使用したいと考えています。私はちょっと周りにグーグルで行き、乾いてきています。私は車輪を再発明する前に、誰か提案がありますか?DBの設定情報?

ありがとうございました。

+0

標準の.NET設定をデータベースに取り込むことは決してできませんでした。これを.NETに再度呼び出すと、 'ConfigurationSection'は残念ながらほとんど不可能に思えます。 Tellago Studiosは、この問題を解決するはずのTeleSharp(http://tellagostudios.com/products/telesharp%E2%84%A2)を発表しましたが、かなり高価なエンタープライズソリューションのような臭いがあります..... –

答えて

0

私の最近のアプリケーションにはこれが正確に必要でしたが、アプリケーションサーバー固有の手法を使用することはできませんでした。

私は基本的に、レジストリスタイルの構成データベースを作成するためにいくつかの小さなテーブルを作成しました。私はキーのテーブルを持っています(すべて親キーを持っていますので、ツリー構造で配列できます)。私のアクセス関数は次のようになりので、すべてのキーと値は、命名されています

openKey("/my_app"); 
createKey("basic_settings"); 
openKey("basic_settings"); 
createValue("log_directory","c:\logs"); 
getValue("/my_app/basic_settings","log_directory"); 

ツリー構造は、(例えば、あなたが、いくつかの異なるキーの下に「LOG_DIRECTORY」の値を持つことができます)あなたは論理的に類似したデータを分離することを可能にし、必要がなくなりプロパティーファイルで見つかった過度に冗長な名前。

すべての値は単なる文字列(db内のvarchar2)なので、ブール値と数値の変換にはオーバーヘッドがありますが、それは設定データなので誰が気にしますか?

また、datetime文字列を持つ "settings_changed"値を作成します。つまり、設定を更新する必要があるかどうかをアプリが迅速に判断できるようになります(ただし、変更するときには必ず設定する必要があります)。

すでにこの種の作業を行うツールがあるかもしれませんが、これはコーディングの価値があり、治療にも役立ちます。私は、コマンドラインツールを追加し、ツリーの一部または全部をアップロード/ダウンロードし、Java Swingで素早くグラフィカルなエディタを作成しました。

関連する問題