BLOB over varchar?

时间:2010-08-11 08:55:52

标签: php mysql

我正在开发一个博客,我的客户想要使用大量图片(文章,标题,广告等)。他几乎不想要任何文字,因为博客他希望用阿拉伯文开发,他对网页浏览器的任何支持字体不满意,也不想采用EOT,他会每天更新博客(如只上传图片),

您认为我应该使用哪种数据类型? BLOB还是VARCHAR?

PS:我正在使用MySQL ..

  

查看以下网站   使用与我相同的概念   客户,虽然他们是竞争对手,   他们使用图像链接,新闻   或广告,仍然是网站   不是那么重..

http://www.sahilonline.net/

4 个答案:

答案 0 :(得分:3)

  

更新:我误解了您要将文本存储为图片。以下建议用于存储原生文本,而不是图像数据。我必须同意@Col这是一个非常糟糕的主意 - 性能方面,关于搜索引擎可见性(不会发生索引),视觉或其他障碍人士的可访问性,不同的屏幕分辨率,移动设备......虽然我可以理解,浏览器可用字体的选择使阿拉伯字符比我们的字体更不公正,但我会尝试让客户远离这个想法。

对于新项目,绝对是VARCHARTEXT / LONGTEXT,其中包含UTF-8字符集。

主要原因是只有(VAR)CHAR和TEXT可以fulltext search

如何将数据存储在数据库中与阿拉伯语字体支持或编码问题无关。 UTF-8表可以毫无问题地存储阿拉伯语文本。

对于编码问题的一些非常彻底的基本阅读,有Joel Spolsky着名的Unicode article

mySQL 5 String type overview

答案 1 :(得分:1)

Blob代表“二进制对象”,而varchar代表“可变数量的字符”,因此,答案很明显,在我看来

虽然我不能不发表评论:将博客文章标题保留为数据库中的图像是我生命中见过的最荒谬的解决方案。

答案 2 :(得分:0)

您可以将您的Image或其他Blob对象保存在目录层次结构中,只需将文件地址保存在数据库中,然后就可以为您的字段使用Varchar或Text!

我建议使用此方法而不是保存blob对象

答案 3 :(得分:0)

如果你使用blob会更好。因为它以您插入的格式存储数据&显示原样。 VARCHAR也有一些限制。

请不要使用文字,因为您说“几乎不想在那里找到任何文字”。存储图像和图像会更好。数据类型blob中的任何Unicode格式的文本。

只需照顾您将给客户输入数据的编辑,该数据应支持阿拉伯语。可以使用这些插件。