質問: php + mysqlなどで掲示板を作るとして、投稿フォームで入力された本文からURLを検出してaタグのリンクをつけるとします。もちろん、改行コードはbrタグやpタグに変換して表示します。 この場合、データベースにはhtml化した本文を保存すべきでしょうか。 それとも、フォームで入力されたtextを保存すべきでしょうか。 htmlを保存する場合、本文を表示する際にサーバーでの処理負荷が少ないですが、データベースの容量は膨れ上がってしまいます(検索機能を考えるとtextも同時に保存すべきであることも考えると2倍以上です)。 逆に、textを保存する場合、データベースの容量は抑えられますが、本文を表示する際に毎回URLを検出してaタグリンクをつけるという処理が発生し、サーバーへの負荷は(比較すると)大きいはずです。 このように、容量をとるか、処理負荷をとるかのジレンマに陥っています。
回答: 今風のWebシステムの場合、Webサーバー側でHTMLを完成させてからブラウザーに送り付けるのではなく、ブラウザー側でAjaxを使用して必要なデータを取得しHTMLを構築するものもあります。 その場合、 > > textを保存する場合、データベースの容量は抑えられますが、本文を表示する際に毎回URLを検出してaタグリンクをつけるという処理が発生し、サーバーへの負荷は(比較すると)大きいはずです。 > > > こういった負荷はブラウザー側に分散できるため、textで保存するのが適切かと思われます。(通信時間やUIのレンダリングコストに比べれば、文字列操作は微々たるものです。) そうではなく、旧来のWebサーバー側でHTMLを完成させる実装の場合、Webサーバーの出力キャッシュを適切に構成し、整形回数を減らす方法もあります。 いずれにしても、phpとデータベースだけで完結させるという縛りを入れてしまうと視野が狭くなってしまいます。