【发布时间】:2013-07-12 03:32:45
【问题描述】:
还有比这更有效的方法来在我的应用程序中实现用户保存的文件吗?
(我将 C# / .Net 与 Sql Server 一起使用)
我的目标:
我希望允许用户将他们创建的数据点(连同其他一些结构化数据)保存到具有任意扩展名的“项目文件”中。
建议的方法:
- 将每个数据点与 FileID 列一起存储在数据库中
- 当用户保存文件时,获取所有数据点:“SELECT * ... WHERE FileID = @CurrentFileID”。
- 将所有这些数据点导出到 XML 文件。
- 从数据库中删除所有这些数据点。
- 将 XML 文件另存为项目文件(或作为项目文件的一部分)。
- 每次用户加载他们的项目文件时,将 XML 中的数据重新导入数据库。
- 显示数据库中 FileId = 当前文件 ID 的数据点。
替代方案: 使用 Sqlite 并为每个用户的项目创建一个单独的 Sqlite 数据库文件?
【问题讨论】:
-
如果你已经有了一个数据库,为什么不直接使用呢?
-
@Blorgbeard:但我希望允许用户创建的项目文件在安装该软件的其他计算机上使用(当然不会有相同的数据库)。
-
所以它就像一个导出/导入功能。然后我看不出需要从原始数据库中删除
-
好的。所以这一步是不必要的。但是当我将 XML 数据重新导入数据库时,如果该数据已经存在于给定的表中,是否会花费更长的时间或发生冲突?