保存每个用户';s文件以及相应的数据库/表

本文关键字:数据库 文件 用户 保存 | 更新日期: 2023-09-27 18:22:05

CONTEXT:我正在Visual C#/.Net中编写一个应用程序,用户可以:

  • 创建一个新的文档文件"Untitled.abc"
  • 添加一些数据/内容,例如图像、文本等
  • 将文档文件保存为"MyDoc7.abc",其中abc将是我的应用程序特定扩展名

问题:以下方法是否适合实现上述内容,或者是否有更简单/更干净的方法?

  • 我从一个名为MyDb的SQL Server数据库开始
  • 每次用户创建一个新的文档文件时,我都会用程序向MyDb添加一个新DB表
  • 新创建的DB表仅存储来自用户创建的特定对应文档文件的数据/内容
  • 当用户将来重新打开保存的文档文件时,我会用程序从所附的相应DB表中读取数据/内容

更新:已解决。我将使用这种替代方法:

  • 我从一个名为MyDb的SQL Server数据库开始,该数据库有一个称为MyTable的表,其中包括一个名为FileId的列
  • 每次用户创建一个新的文档文件时,我都会为该文件分配一个唯一的id,例如FileId=5
  • 当用户向文件中添加一段数据/内容时,我会将该段数据存储到MyTable中,但也会存储该段数据的FileId=5
  • 将来,当用户重新打开文件时,我会从FileId=5的MyTable中获取所有数据

保存每个用户';s文件以及相应的数据库/表

这样做听起来特别糟糕。

  1. 您不想在运行中创建表
  2. 如果所有数据都在数据库中,那么该文件的用途是什么

我宁愿选择Office使用的方法:

  1. 该文件实际上是一个zip档案,其中包含:
    1. 资产(图像等)的文件夹
    2. 包含内容和资源的相对链接的实际文件