假设:Microsoft 堆栈(ASP.NET;SQL Server)。
一些内容管理系统通过将用户生成的内容(图像、文件附件)存储在文件系统中来处理它。其他人将这些项目存储在后端数据库中。
两者的一些例子:
- 在文件系统中:社区服务器、Graffiti CMS
- 在数据库中:Microsoft Sharepoint
我可以看到每种方法的优缺点。
在文件系统中
- 轻的
- 避免膨胀数据库
- 备份和恢复可能更简单
在数据库中
- 所有内容都集中在一个存储库(数据库)中
- 完全分离关注点(内容与格式)
- 更容易部署网站(例如直接从 Subversion 存储库)
什么是最好的方法,为什么?将用户文件保存在数据库中的优点和缺点是什么?还有另一种方法吗?
我提出这个问题 Community Wiki 因为它有点主观。