假设: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/