ファイルにデータを保存するためのこのインターフェイスを作成しました。
interface IFileStore {
bool Import(string);
string Export();
}
...そしてそのインターフェースを実装する汎用クラス:
class DBTextFile<T> where T : IFileStore, new ()
{
public List<T> db = new List<T>();
public void SaveFile(string filename)
{
foreach(T d in db) File.WriteToFile(d.Export(), filename);
}
public void RestoreFile(string filename)
{
db = new List<T>();
string buffer;
while(buffer = File.Read(filename) != null)
{
T temp = new T();
if(temp.Import(buffer)) db.Add(temp);
}
}
}
このアプローチは、しばらくの間私のために働いています。しかし、管理しなければならないファイルが多すぎることに気付きました。私の各ファイルがそのデータベースのテーブルになるデータベースを使用する方が適切かもしれません。
ユーザーがユーザーのシステムにソフトウェアをインストールする必要のないデータベースを使用したいと考えています。(ユーザーにとって物事をシンプルに保ちたいのです。) 基本的には、開発者である私が簡単に使用および展開できるデータベースが必要なだけです。
MySQLは良い選択でしょうか? または、別のデータベースの方が私のニーズに適していますか?