2012-04-19 69 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