2012-04-19 70 views
5

我正在写一个论坛网站,但我现在正在设计数据库来保存帖子时遇到问题。从我读到的,phpBB 3将用户发布的数据存储为BLOB,并将一些存储数据存储为文本。对另一个人有什么好处?如果将数据存储为文本,那么最大字符数怎么办?我从来没有从数据库中检索BLOB数据,并将其解析为文本(或者其他任何数据),但我认为学习如何使用它会很有趣。blob vs论坛中的文本

该帖子的文本数据将采用utf8编码。我正在使用MySQL数据库。

此外,您如何允许上传论坛图片,并且应该将图片作为数据库的一部分进行存储(例如,在BLOB中),应该将其存储为单个文件吗?

欢迎任何推荐/建议。

+1

如果你在游戏中编码,那么你使用'text'。如果您将二进制数据(如文件内容)存储到数据库中,则使用“blob”。没有理由在论坛帖子中使用“blob”。 – 2012-04-19 09:31:39

+0

相关:http://stackoverflow.com/questions/572850/store-text-in-blob – 2012-04-19 09:36:07

+0

我之前读过,但它没有回答我的问题。 大多数论坛网站都将它们存储为文本数据,然后从数据库中检索它们?那正是我想要做的,但是一旦我阅读了BLOB和phpBB,我就不确定了。 – mma1480 2012-04-19 19:36:30

回答

9

文字和blob几乎相同,主要区别在于使用blob时您必须自己关心编码。在另一方面,你将被迫使用文本字段的编码... 在数据库中存储的文件有一定的优势和disatvantages:

优点:

  • 备份和切换到另一台服务器是更容易实现
  • 无需添加另一种方法来访问数据库旁边的文件

缺点:

  • 访问图像的装置检索它的字节,也许存储,作为临时的本地文件,可能会更复杂
  • 文件系统是简单的更快,因为较低的开销

的decission是你的,最观点认为到目前为止,我听说将图片存储为文件;但这是意见,试图根据您的项目需求做出决定。

+0

在codeigniter中是否有一个函数允许用户上传图片? – mma1480 2012-04-19 19:41:40

+0

我个人对codeigniter没有经验,所以不能说。也许这个链接可能会有所帮助:[link](http://codeigniter.com/forums/viewthread/111042/) – Argeman 2012-04-20 08:01:15