gpt4 book ai didi

c# - 使用本地数据库在 WPF 中存储/处理文件附件的最佳方式是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:19 27 4
gpt4 key购买 nike

这是应用程序的快速背景

基本上..

  1. 每台机器多个用户(通常只有一个)
  2. 在每台机器上运行的本地 sql server 数据库拥有自己的数据
  3. WPF 应用程序能够将表格中的数据导出到 zip 文件

就目前而言,我无法更改其开启的环境。

我看到有两个选项可以处理将附件保存/上传到文档(pdf,doc)据我所知,目前没有尺寸要求或所需的扩展

  1. 将每个文件作为 varbinary 直接保存到数据库中,并使用 FK 和引用表将这些文件附件返回到应用程序中以便打开

  2. 具有相同的 FK 和引用表,但我将文件保存到本地硬盘上的某个文件夹(散列 + 加密?)。然后我将该文件重命名为通用名称,并将该文件的名称和位置存储在数据库中。

当我在 web 开发中处理这个问题时,第一个选项似乎很古怪,但由于我有一个应用程序服务器,所以我不必担心可能的用户干扰。

我喜欢选项二,但文件可以由用户移动并使一切都乱七八糟,并且可能留下数据库中孤立子记录或孤立文件的选项。

有这方面的最佳实践吗?

最佳答案

如果使用 SQL Server 的支持版本,最好的办法是使用 FILESTREAM data type因为它提供了很多性能优势,除非所有存储的对象都小于 1MB,否则它是值得的。

来自文章:

If the following conditions are true, you should consider using FILESTREAM:

Objects that are being stored are, on average, larger than 1 MB.

Fast read access is important.

You are developing applications that use a middle tier for application logic.

For smaller objects, storing varbinary(max) BLOBs in the database often provides better streaming performance.

希望对您有所帮助!

关于c# - 使用本地数据库在 WPF 中存储/处理文件附件的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8328215/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com