繁体   English   中英

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

[英]how to store an image and a text in a database in mysql

我想将配方存储在数据库中,配方的格式应为顶部的小照片和下方的文本。 谁能解释我的结构?

提前致谢

我会避免将图像的实际字节存储在数据库中,这通常是个坏主意(请参阅在DB中存储图像-是还是不是? )。 相反,我将创建一个简单的TEXT字段来存储您的食谱页面的Markdown版本。 该页面可能包含指向您的图像的图像标签,或者仅包含配方说明。

您可以将图像存储在数据库中,但是从数据库中检索图像并将其呈现给用户通常不是一件容易的事(它也没有那么出色)。 我建议将映像存储在某种类型的NAS上,并将该映像的位置以及配方的其他数据存储在数据库中。

上载图像后,为其创建一个唯一的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'

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

您可以将BLOB用于图像数据,将VARCHAR用于文本。 如果您愿意,可以使用标识符/键的VARCHAR name字段或INT id字段。

您可以轻松地获得3场桌

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

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

通常,在这种情况下,最好的想法(在图像和文本分开的意义上更易于管理)是将文本存储在表的一个字段中,将图像路径存储在另一个字段中,如Damien Pirsy所建议的那样。 所以我只是增加我的声音。 它不仅可以更好地控制数据,还可以更好地控制数据的显示方式。 并且以最有效的数据库方式。

将图像字节本身存储在数据库中并不是很有效,这取决于图像的大小以及一次要检索的数量。 您必须考虑到此类字段的内容是可变的,并且取决于用户的操作,因此从性能角度来看并不是十分安全。 EG如果用户插入1MB图像怎么办?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM