我们正在使用Asp.net和Sql server开发电子商务网站。客户可以查看和订购各种开关和灯具。
由于我们需要为每个类别显示这些产品的图像,我们需要显示的图像数量可能会增加到500以上。我们对是否应该将这些图像保存为SQL中的图像类型或者它是否更好感到困惑存储图像的路径。在后一种情况下,将所有图像存储在单个文件夹下更好吗?
请告知最佳行动方案。
答案 0 :(得分:11)
image
数据类型与图像无关。我不知道它为什么存在。这是遗产。
存储图像,就像存储任何其他blob一样:varbinary(max)
。
The issue whether to store blobs in the database at all has been discussed before.请注意,那里的答案非常固执和主观。显然,人们应该总是将blob存储在数据库外部。
答案 1 :(得分:7)
您可以在sql server上为 BLOBs 使用以下数据类型:
Binary
:固定大小最多8,000个字节。
VarBinary(n)
:可变大小,最多8,000个字节(n指定最大大小)。
VarBinary(max)
:可变大小,限制为2 GB。
答案 2 :(得分:3)
我建议您可以将数据库中的图片网址与产品ID保存在一起。但是,如果您一次请求最多500个网址,我建议可能在中间引入一个CDN来缓存图像URL。将对性能产生重大影响
答案 3 :(得分:1)
将图像存储到文件夹并将该文件的路径存储到sql server是个好主意。但它可能导致文件的同名并被替换。所以保存时间戳。我认为它会帮助你以另一种方式保存到sql server的Image Datatype。
将数据保存到sql server图像数据类型在下面的链接上按照Guildline
答案 4 :(得分:0)
让我们考虑一下。如果存储在blob字段中,请确保为该数据创建单独的文件组。如果您决定存储为路径。使用文件流。数据库将管理路径。它将在交易中处理。它将与数据库一起备份。
答案 5 :(得分:-1)
将图像直接保存到数据库中并不是一个好主意。最好将图像和媒体/文档文件保存到 s3 存储桶/cdn 并且您不想支付那么多费用。保存图像进入文件夹并使用 varchar 数据类型
将其路径保存到数据库