【问题标题】:how to store images and text in same field in a mysql database?如何将图像和文本存储在 mysql 数据库的同一字段中?
【发布时间】:2012-07-16 02:52:36
【问题描述】:

我需要将文本和图像存储在同一个字段中吗? 如何使用 mysql 数据库在 php 中实现这一点? 我过去曾使用 BLOB 来存储图像。 我应该使用哪种数据类型来解决这个问题?

这将如何运作......?

【问题讨论】:

  • 不要那样做。最好分开存放。
  • 它正在对您的数据库进行非规范化...所以请避免这件事并将其分开
  • 显而易见的问题是“为什么?”
  • 实际上我正在为我的网站实施一个小问卷。所以问题有选项,有时是文本和图像的组合。注意:一个选项可以有多个图像,并且在任何位置:即在文本的开头,在文本的中间和结尾文本.....如何实现这一点,以便我能够以正确的顺序正确显示带有文本和图像的选项内容..... -
  • @AjaxAristodemos 几个小时前要低很多。但现在已经排序了。

标签: php sql database image


【解决方案1】:

首先要说的是,不要那样做! 数据库中的列应该是原子的,这意味着它们只保存一条信息。这是第一范式的基本规则。如果您尝试将多个数据项塞入一列,您将违反该规则,并且您将在以后经历一个充满伤害的世界。

理论上,您可以使用访问数据库的任何前端将数据序列化为字符串并将其存储(例如,在 php 中,您可以使用$dataToStore = serialize (array 'Some string', $someData);)。然后,您将使用反序列化将图像数据和文本提取回单独的项目。

但是你为什么要这样做呢?这是您不需要做的额外工作,以使您的数据库设计不如预期的最佳。简单地将另一列添加到要存储数据的表中,一列用于文本,一列用于图像,这有什么问题?

如果您认为您的方法没有问题,那么请从受雇从事充满序列化数据的数据库的工作人员那里获取它,它是。这是一个巨大的问题。这使得使用数据库几乎是不可能的。您必须将数据提取到您正在使用的脚本语言中并对其进行反序列化,然后才能对其进行任何操作。您不能使用 SQL 语句来查询序列化数据。

【讨论】:

  • 实际上我正在为我的网站实施一个小问卷。所以问题有选项,有时是文本和图像的组合。注意:一个选项可以有多个图像,并且在任何位置:即在文本的开头,在文本的中间和结尾文本.....如何实现这一点,以便我能够以正确的顺序正确显示带有文本和图像的选项内容.....
  • 如果可以有多个图像,那么这意味着你有一对多的关系。您使用图像的依赖表对它们进行建模,并使用外键将图像绑定回它们所依赖的父表中的行。你真的需要重新考虑你的数据库设计。听起来它目前大错特错。
  • 我目前仅将选项存储为文本。现在我正在添加在选项中也包含图像的功能...如何链接图像和文本...如何知道订单选项中的图像和文本......?
猜你喜欢
  • 1970-01-01
  • 2012-06-08
  • 2011-05-07
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
  • 2015-01-01
  • 2023-04-09
  • 2012-01-14
相关资源
最近更新 更多