我正在使用C#在ASP.NET MVC 3中开发一个电子商务网站。使用SQL Server 2008R2。我的问题是,如果我想在gridView中使用缩略图显示5个图像(例如像亚马逊网站那样为客户提供几张图片),如果图像来自数据库,或者我应该驻留在Content \ Images文件夹?在我的数据库设计中,子类别中有很多子类别。专业开发人员最常见的诉讼是什么?谢谢。我知道第三方工具的选择很少,比如jquery& Telerik Extensions。所以我会用它们。
谢谢
答案 0 :(得分:1)
根据我的经验和研究,最好将其放在文件夹/内容结构中。是的,有开放目录的安全事项,但如果您通过ftp动态上传文件,问题就解决了。我听说过关于在数据库中存储文件的恐怖故事,并且已经看到问题出现但已经解决了。基本上,写入数据库更容易,并且没有向公开打开目录的安全问题,但只是确保定期检查文件未损坏的备份或确保数据位于故障转移群集上永远不会成为问题。
总结:数据库很好,只需定期检查备份,确保它们没有损坏或作为故障转移群集运行。否则只需使用典型的文件夹/内容结构,但使用ftp上传文件,这样就没有公开的目录。
答案 1 :(得分:0)
对我而言,这个问题的最佳答案是:To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem
Sumary:应用程序设计人员经常面临是将大对象存储在文件系统还是数据库中的问题。通常,这个决定是为了简化应用程序设计。有时,也会使用性能测量。本文着眼于碎片问题 - 一个可能影响系统长期部署的性能和/或可管理性的操作问题。正如通常所预期的那样,小于256K的对象最好存储在数据库中,而大于1M的对象最好存储在文件系统中。在256K和1M之间,读取:写入比率和对象覆盖或替换率是重要因素。我们使用“存储年龄”或对象覆盖次数的概念作为对挂钟时间进行标准化的方式。存储时间允许我们的结果或类似的结果应用于多个读取:写入比率和对象替换率。