多くの場合、管理者情報やバージョンなどのシステムプロパティを保存する必要がある場合は、フラットファイル(database.properties、init.propertiesなど)を使用します。これは、私が日常的に見たり使用したりしている他のプログラムでは一般的なようです。
フラットファイルは、いくつかの理由で理想的でない場合があります。多くの場合、Webアプリを多数のクライアントにデプロイするには制限があります。このような場合、データベーステーブルを使用して情報を保持します。たとえば、保存したい管理データがいくつかあり、環境に関する詳細がいくつかあるとします。私はこのようなことをするかもしれません:
property_entry_table
[id, scope, refId, propertyName, propertyValue, propertyType]
1, 0, 1, "DB_VER", "2.3.0", "FLOAT"
2, 0, 1, "LICENCE", "88475", "INT"
3, 0, 1, "TOP_PROJECT", "1", "INT"
4, 0, 1, "SHOW_WELCOME", "F", "BOOL"
5, 0, 1, "SMTP_AUTH", "SSH", "STRING"
6, 1, 1, "ADMIN_ALERTS", "T", "BOOL"
これによりSQLの型指定が壊れ、あらゆる種類の型を文字列として保存できるようになります。これは良い習慣ですか、それとも私はこれを間違った方法で行っていましたか?
そうでない場合、このタイプの情報をどのように保存する必要がありますか?