asp.net - 在内容管理系统中处理图像和文件附件

标签 asp.net sql-server windows content-management

假设:Microsoft 堆栈(ASP.NET;SQL Server)。

一些内容管理系统通过将用户生成的内容(图像、文件附件)存储在文件系统中来处理这些内容。其他人将这些项目存储在后端数据库中。

两者的一些例子:

  • 在文件系统中:Community Server、Graffiti CMS
  • 在数据库中:Microsoft Sharepoint

我可以看到每种方法的优缺点。

在文件系统中

  • 轻量级
  • 避免数据库膨胀
  • 备份和恢复可能更简单

在数据库中

  • 所有内容都在一个存储库(数据库)中
  • 关注点完全分离(内容与格式)
  • 更容易部署网站(例如直接从 Subversion 存储库)

什么是最好的方法,为什么?将用户文件保存在数据库中有哪些优点和缺点?还有其他方法吗?

我在 Community Wiki 提出这个问题是因为它有些主观。

最佳答案

如果您使用的是 SQL Server 2008 或更高版本,则可以使用 FileStream 功能来两全其美。也就是说,您可以从数据库访问文档(用于查询等),但仍然可以通过文件系统(使用 SMB)访问文件。 More details here.

埃里克

关于asp.net - 在内容管理系统中处理图像和文件附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3892237/

相关文章:

c# - 同时检查多个 boolean 返回值

c# - VS 2017 .NET 4.6.2 新增 ASP.NET Core Web Application (.NET Framework) 默认为 x86 平台

存储在 UTC 中的 SQL DateTimes 根据偏移量获取一天的开始

c# - 如何使用 C# 或 SQL 生成 SQL 数据库脚本?

windows - 在表单显示之前检测鼠标按钮是否已经按下

windows - 为什么控制台输出会阻止自引用批处理脚本干净地退出?

c# - 是否仍然可以使用仅适用于完整 .NET Framework 的 .NET Core 2.0 模板创建 Web 应用程序

asp.net treeview 仅展开选定的父级

sql - SQL Server 2005 中的多个随机值

windows - 确定窗口属于桌面还是 Windows 应用商店应用