-1

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

这将如何工作......?

4

1 回答 1

5

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

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

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

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

于 2012-07-17T07:57:17.000 回答