我将为在线商店创建MySQL数据库。这家商店有大约3000种产品。每个产品有5张照片。我为products
表(product_id, product_name)
和images
表创建了表(image_id, Image_details, Product_id)
插入照片的最佳方式是什么? *我使用C#(桌面应用程序)作为GUI
虽然,使用BLOB对象可以实现这一点,但这不是首选方式。您必须存储图像的位置(类似于其他大文件),当查询结果转动时,使用该位置访问图像。
请记住,您的图像会随着时间的推移而增加,因此,在实践中,我们应用目录层次结构,通常两个就足够了。可以使用图像名称的前两个字母,但是,这将是不平衡的目录结构。更好的想法是使用基于散列的随机化将文件均匀地分布在子目录上。一个例子(在Java中)可以找到here。
不要将图像保存在数据库中,这不是最好的方法。保存表格中与产品相关的图像的路径。
使用云Blob存储或文件系统而不是保存在关系数据库中。由于性能,备份和可维护性,建议不要在数据库中存储大量图像> 1mb。
但是,如果你有一个小应用程序,并且非常确定这样做,你可以将图像转换为字节数组并保存在MySQL BLOB字段中。请查看以下链接以获取样本:
C# saving images to MySql database as blob
校验:
Should I store my images in the database or folders?
How can I save an Image to the File System?
https://docs.microsoft.com/pt-br/azure/storage/blobs/storage-quickstart-blobs-dotnet?tabs=windows
https://www.c-sharpcorner.com/article/azure-storage-crud-operations-in-mvc-using-c-sharp-part-two/