什么在mysql数据库中存储图像或其路径

时间:2014-04-20 13:59:43

标签: mysql

我正在使用MySQL,我想存储一些图像。我在论坛上看到,不是将图像直接存储为' BLOB',而是将图像存储在目录中,并将数据存储在数据库中。但是,如果用户将从目录中删除任何图像(或通过其他方式删除图像,该怎么办)。有办法处理这种情况吗?为什么它不喜欢直接在db?

中存储图像

编辑:数据库与网站开发无关。我正在开发一个软件,其中用户将使用相机拍摄一些图像,并在使用它之后,我想在数据库中存储该图像的记录以及一些其他参数(其中一列用于存储图像)。该软件和数据库将在用户PC上运行。我将生成(可能是excel)所有记录的最终报告。

2 个答案:

答案 0 :(得分:1)

好吧,在mysql中存储图像会导致数据库的大小和负载增加。如果您的网站拥有高容量的流量网站,这不是一个好主意。相反,我通常更喜欢将图像文件存储在一个文件夹中。更新其在数据库中的路径。您需要注意的主要事项是设置一个唯一的名称(例如img1_2014_04_20_16_30_25.JPG)以防止文件被覆盖。在上述名称中,可以使用时间函数轻松地使其独特。然后就我所知,没有直接用mysql处理这种错误的方法,你可以用你的前端做的就是确保图像存在或者将默认的没有图像作为显示。

答案 1 :(得分:0)

您永远不能100%确定图像不会被删除。当然,为了获得额外的安全性,您只能将某个用户的权限授予目录和内部文件。存储blob的缺点 - 就像MySQL能够处理相当大的数据库一样,图像可以为数据库增加荒谬的数量,如果它变得非常大,它将更难管理,维护和优化。如果您决定交换引擎,迁移将非常困难,如果您决定使用noSQL解决方案(couchdb,mongo等),则会更加痛苦。也许您可以设置一个cron来遍历所有记录并检查文件是否存在。如果没有,请从表中删除记录。然后我再也不确定你要做什么。如果用户可以选择删除图像,我认为它将通过某个界面发生。您需要实现一个逻辑,以便:

1)文件被删除

2)记录将从数据库中删除。