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

C# 保存每个用户';s文件以及相应的数据库/表,c#,.net,sql,visual-studio-2010,visual-studio,C#,.net,Sql,Visual Studio 2010,Visual Studio,上下文:我正在用Visual C#/.Net编写一个应用程序,用户可以: 创建新文档文件“Untitled.abc” 添加一些数据/内容,例如图像、文本等 将文档文件另存为“MyDoc7.abc”,其中abc将是我的应用程序特定扩展名 问题:以下方法是实现上述目标的好方法,还是有更简单/更干净的方法 我从一个名为MyDb的SQL Server数据库开始 每次用户创建一个新的文档文件时,我都会通过编程向MyDb添加一个新的DB表 新创建的DB表只存储用户创建的特定对应文档文件中的数据/内容

上下文:我正在用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中获取所有数据

    • 这听起来是个特别糟糕的主意

    • 您不希望动态创建表
    • 如果所有数据都在数据库中,那么该文件的用途是什么
    • 我宁愿选择Office使用的方法:

    • 该文件实际上是一个zip归档文件,其中包含:
    • 用于资源(图像等)的文件夹
    • 包含内容和资产相关链接的实际文件

    • 好的,但情况是这样的:数据库用于存储数据(为了简单起见,它是一个朋友姓名列表)。另一方面,保存的“文档文件”将保存该数据和一些参数,例如,朋友列表显示样式=水平。更一般地说,我希望文档文件是一种用户友好的方式,用于提取他们自己的特定数据。这有意义吗?我可以同意Office使用的方法,但在我的情况下,实际数据必须以数据库格式存储,而不仅仅是图像/纯文本。在这种情况下,我可以使用什么方法?在这种情况下,您仍然不希望每次都创建一个新表。也许您正在寻找的是文档数据库(NoSQL)。谢谢。然而,在我开始学习NoSQL之前,您对我现在添加到问题中的替代方法有何看法?(这种“更新”方法不会动态创建数据库/表。)@boardbite:我也不确定您是否希望将所有内容都存储在一个表中,但每个文件的唯一ID很好。最好有一个用于资产的表和一个用于内容的表,这样您就可以只为每个表提供所需的列。