我想将食谱存储在数据库中,食谱的格式应该是顶部的小照片和下面的文字。 谁能解释一下结构应该如何?
提前致谢
答案 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图像会怎样?