【发布时间】:2013-11-15 05:51:34
【问题描述】:
我已经创建了这个接口用于在文件中存储数据:
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 会是一个不错的选择吗?或者其他数据库是否更适合我的需求?
【问题讨论】:
-
SQLite(几乎无处不在,但功能有限)、SQL Server Compact(微软在这个市场上提供的产品)和 Firebird(功能非常丰富)是第三种(但不是唯一的)选项-安装/嵌入式 RDBMS 市场。我不会将 Access 用作数据库,除非也将 Access 用于它提供的其他功能/环境。