Php 在CMS中处理图像的最佳实践
关于在PHP/MySQL CMS中处理图像的最佳实践的快速问题。每个项目都有不同数量的关联图像,这些图像将存储在项目ID引用的文件夹中。上传时会进行验证,因此所有文件都应有效。 我的问题是,我是否也应该将ID和文件名存储在数据库表中,并从DB中提取源数据,还是只需迭代文件夹并直接插入源文件名就可以了Php 在CMS中处理图像的最佳实践,php,mysql,Php,Mysql,关于在PHP/MySQL CMS中处理图像的最佳实践的快速问题。每个项目都有不同数量的关联图像,这些图像将存储在项目ID引用的文件夹中。上传时会进行验证,因此所有文件都应有效。 我的问题是,我是否也应该将ID和文件名存储在数据库表中,并从DB中提取源数据,还是只需迭代文件夹并直接插入源文件名就可以了 我希望这是有道理的。提前感谢您的建议。这在很大程度上取决于您想要的故障点数量和响应时间的速度 如果将其存储在文件系统上: 传入的HTTP请求 PHP查询数据库 数据库将查找该行 PHP解密查询响应
我希望这是有道理的。提前感谢您的建议。这在很大程度上取决于您想要的故障点数量和响应时间的速度 如果将其存储在文件系统上:
- 假设您迁移了数据。如果二进制图像数据存储在数据库中,只需移动数据库即可。但是,如果二进制图像数据存储在文件系统中,则必须记住同时移动两者。还要注意迁移的大小是相同的(或者至少是最小的不同)
- 考虑重命名资产-您不仅需要在数据库中重命名资产,还需要在文件系统中重命名资产。这总共是2个步骤,而在DB中重命名它的步骤只有1个
- 考虑删除资产-您必须在两个位置删除它
如果您选择将文件存储在数据库中作为BLB,请考虑不同的BLB存储要求:
- TINYBLOB-256字节
- MEDIUMBLOB-64千字节
- LONGBLOB-4G字节
我有与Adobe的Day CQ合作的经验,这是一个新兴的企业级内容管理系统。它主要是用Java编写的,但需要注意的是数据体系结构。它使用一个JCR(Java内容存储库),它的行为或多或少类似于一个多维MySQL数据库(有点酷?)。DAM(digital asset manager)中的所有图像数据都存储为JCR中的一个节点。感谢您的详细响应,老实说,我决定不在数据库中存储实际的二进制数据。虽然你确实提出了一些令人信服的论点,我需要考虑。我的想法是,或者只是将文件名存储在数据库表中,而不是单独使用项目的id来查找文件夹,并简单地包含该文件夹中的所有图像。请原谅我措辞上的混乱。