如何在mysql中的数据库中存储图像和文本

时间:2011-02-23 20:42:17

标签: php mysql phpmyadmin

我想将食谱存储在数据库中,食谱的格式应该是顶部的小照片和下面的文字。 谁能解释一下结构应该如何?

提前致谢

6 个答案:

答案 0 :(得分:4)

我会避免将图像的实际字节存储在数据库中,这通常是个坏主意(参见Storing Images in DB - Yea or Nay?)。相反,我会创建一个简单的TEXT字段,可以存储您的食谱页面的Markdown版本。此页面可能包含指向图像的图像标记或仅包含配方说明。

答案 1 :(得分:1)

您可以将图像存储在数据库中,但检索并将图像从数据库呈现给用户通常并不容易(它也不能很好地执行)。我建议将图像存储在某种NAS上,并将该位置存储到数据库中的该图像以及配方的其他数据。

答案 2 :(得分:1)

上传图像时,为其创建一个唯一的ID并将其存储在图像目录中。

将唯一图像ID存储在带有TEXT字段的表中: -

id | image_id |配方

id字段应设置为auto_increment。你可能想要一个标题字段。

填充的数据库看起来像: -

id | image_id           | recipe_title  | recipe_body
--------------------------------------------------------------------------------
1  | 218328132192.jpg   | 'Boiled egg'  | 'Put egg in pan and boil for 10 mins'

可以使用哈希函数甚至再次使用auto_increment生成image_id。

答案 3 :(得分:0)

您可以使用BLOB作为图片数据,使用VARCHAR作为文字。如果您有这种倾向,可能是标识符/键的VARCHAR name字段或INT id字段。

答案 4 :(得分:0)

你可以轻松找到一个3场的表

| id | image | text |
---------------------
|    |       |      |

类型为INT,AUTO-INCREMENT,PK的ID,如果更长,则图像可以是BLOB和文本VARCHAR(255)或TEXT。我习惯将图像保存为路径而不是blob(VARCHAR字段,即),然后只将此路径打印到我存储相对图像的文件夹。它需要的资源更少,工作量更少;)

答案 5 :(得分:0)

在这种情况下,通常最好的想法(在图像和文本分离的意义上更容易管理)是将文本存储在表中的一个字段中,将图像 PATH 存储在另一个字段中Damien Pirsy建议道。所以我只是加入我的声音。它不仅可以更好地控制数据,还可以控制数据的呈现方式。并以最具数据库效率的方式。

将图像字节本身存储在数据库中效率不高,具体取决于图像的大小和一次检索的数量。您必须考虑这些字段的内容是可变的并且取决于用户操作,因此从性能的角度来看并不十分安全。例如。如果用户插入1MB图像会怎样?