我总是进退两难:对于记录,我可以使用列图像 (tinyint),如果该记录有图像则为 true,否则为 false。
我也不能将该信息放入数据库中,在我的代码中,我使用磁盘文件系统“窥探”图像是否存在。
两者当然给出相同的结果。在数据库中意味着将图像状态与磁盘上的真实图像分开维护,意味着更难编程并且更容易出错(磁盘图像不再存在,在数据库中记录在列图像上为真)。
所以我通常使用磁盘检查。但我突然想到,也许这对磁盘访问有很大的影响。我知道数据库检查必须更快,无论如何我必须从数据库中获取记录。但是使用文件系统查找图像是否像我想象的那样糟糕?
最佳答案
将其存储在数据库中的优点:
- 您可以创建查询来回答诸如“给我所有没有图像的对象”之类的问题
- 速度更快,因为您不必接触磁盘
我认为仅将其存储在磁盘上没有任何好处。使用具有“单一责任地点”的模式,这意味着您的代码中只有一个地方可以保存、更新、删除图像。在这个地方更新文件和数据库。这样做,它不太容易出错。
反过来说:如果这使您的应用程序容易出错,您应该检查您的架构。
关于mysql - 最好使用 : mysql column or file check to detect image?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6763112/